您的位置:首页 > 编程语言 > Delphi

还是毕业设计的问题,Delphi中ADO数据库组件的TParameter&TParameters的问题,看了一些书上很少讲ADOQuery组件参数的赋值问题所以在这里提一下,希望对一些人有帮助

2007-05-30 16:46 771 查看
 

adoquery2.SQL.Clear;
      adoquery2.SQL.Add('insert into checked_feeder'+
      ' values(:position ,:f_barcode,:r_barcode,:op_num,:tm)');
      adoquery2.Parameters[0].Value:=count_position ;
      adoquery2.Parameters[1].Value:=trim(f_edit.text);
      adoquery2.Parameters[2].Value:=trim(r_edit.Text);
      adoquery2.Parameters[3].Value:=trim(num);
      adoquery2.Parameters[4].Value:=datetimetostr(now);
      adoquery2.ExecSQL;
Delphi中ADOQuery的Parameters属性BDE的Params属性比较介绍:
1. Params的类型是Tparams而ADO的Parameters属性是TParameters这两个类型表面上没有什么区别,但是其内部机制却迥异。
2.TParams的继承结构试图如图1-15(1),而TParameter的集成结构视图如图1-15(2). TParameters和T
4000
Params类视图
3.TParameters是专为TADO**对象建立的,所以它没有提供Create()构造函数只是提供了在现有的TCollection对象中新增加一个TParameter元素的CreateParameter函数(其实TParameter 也没有提供Create函数这个方法也只是将一个已经存在的OLEVariant加入到参数列表中来)。TParameter的创建是由TADO**对象负责的对用户是不公开的应为有些TADO**对象既封装了ADO中的Commmand对象又封装了RecordSet对象,而这些对象在使用过程中都不可避免的要用到参数,所以让用户负责参数的创建和管理是不明智的。
4.同样TParameter和TParam也是不同的。虽然它们的继承结构是完全一样,方法和属性也大致相同的但是在提供的赋值方法上TParam比起TParameter要少的多。
      

Tobject
 

TPersistent

TCollection

TParameters

TOwnedCollection

TPersistent

TCollection

TParams

Tobject
 

       (1)                                                    (2)
                     图1-15
这是由于TParameter是动态链接到数据源的他对自己将要得到的数据类型是不知道的,他可能来自于一个电子表格,也可能来自于一个规范的数据库。因此TParameter仅提供了通过Value属性和Assign()方法。而TParam类提供了AsString,ASDouble,AsInt等简单方便的赋值方法。TParam同样提供了Value的赋值方法但是他的Value是Variant类型,而TParameter是OLEVariant类型。由此可以看出TADO××更注重动态分布式的适应性这也是TADO××和TBDE××的最核心的区别。
以上就是TParameter(s)和TParam(s)大概的区别。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐