ADO控件用法(100分)

  • 主题发起人 主题发起人 delphifaq
  • 开始时间 开始时间
D

delphifaq

Unregistered / Unconfirmed
GUEST, unregistred user!
用ADOQuery,TADOCommand如何实现Query的用法;
'insert into Letters (ID,Name,Address,TelePhone,Content) Values (:a,:b,:c,:d,:e)';
Query.Params[0].ASInteger:=...
Query.Params[1].AsString:=...
....
其中如果Content为Memo字段如何付值
ID如何自动加1;
数据库为Access
 
ID:Access可以设自动增加字段
Memo:关注!
 
表设计时,定义字段将ID定义为自动编号类型,在Insert语句就不必向ID写值,因为每添加一条
记录,ID会自动加1,(数据库帮你做的)。
(除非你需要写入特定的值,那只好自己写程序控制加1啦)
Memo字段也可以用 .Asstring 或 .Value 赋值。

为TADOCommand建立几个参数,如同TADOQuery一样,SQL语句直接写进
TadoCommand的CommandText属性中,参数赋值也是一样,比如:
self.ADOCommand1.CommandText:='insert into Letters
(Name,Address,TelePhone,Content) Values (:b,:c,:d,:e)';
//参数赋值
self.ADOCommand1.Parameters[0].Value:='';
self.ADOCommand1.Parameters[1].Value:='';
self.ADOCommand1.Parameters[2].Value:='';
...
执行SQL是:self.ADOCommand1.Execute;
 
seachild2000都说了
 
请问ADOQuery也可以像ADOCommand一样赋参数并执行吗?
ADOQuery1.Parameters[0].Value := Edit1.Text;
如何返回查询结果?用ADOQuery.Open不行,我看了帮助文件,上面说要和ADOCommand
结合起来用,是不是ADOQuery非得借助于ADOCommand才行?
 
不是吧?之所以有ADOCommand这个东西存在是因为ADO本身存在Command对象,Delphi为了
把这种对象对应于VCL才引入的TADOCommand,它只是提供了另外一种操作方式而已,并且它主要用于数据定义操作。
而TADOQuery和TQuery是相应的控件,也就是说TADOQuery的功能和TQuery的功能是等价的,当然应该可以用参数了。
至于查询结果,不知道你是指返回的结果集呢,还是操作状态?
看你的问题应该是插入操作,那就得用ADOQuery1.ExecSql;而不能用ADOQuery1.Open;
Open是用于SELECT查询的,ExecSql是用于那些不返回结果集的操作的。
 
ADOQuery当然可以赋参数,比如:
self.ADOQuery1.Parameters[0].Value:='?';
//一、如果返回结果集,使用Refresh过程:
self.ADOQuery1.Refresh;
//二、如果执行插入、删除或更新(Insert,Delete,Update)Sql语句的话,
//使用Execsql过程;
Self.ADOQuery1.Execsql;

 
我咋天试验成功了。为什么以前不成功呢?因为以前用惯了dBase和Paradox,在写SQL语句
的时候总爱写成: 'Select * from "Table1.dbf" where 字段 = :Value',而在Access里
却不能这样干,只能写成:'Select * from Table1 where 字段 = :Value'。哈哈
谢谢!
 
怎么将TMEMO控件的数据(内容)付值给MEMO字段,Parameters.Value怎么写
用ADO开发的数据库应用程序在做安装盘时,还需要另外安装什么动态库吗?
 
delphifaq:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
多人接受答案了。
 

Similar threads

后退
顶部