adoquery如何优化呢,每次程序第一次查询的速度很慢。如题 谢谢了
1个回答
展开全部
//查询记录 procedure TForm1.Button1Click(Sender: TObject); begin ADOQuery.Close; ADOQuery.SQL.Clear; ADOQuery.SQL.Add('select * from YourTABLE where 查询条件'); ADOQuery.Open; //插入记录 procedure TForm1.Button2Click(Sender: TObject); begin ADOQuery.Close; ADOQuery.SQL.Clear; ADOQuery.SQL.Text:='insert into YourTABLE(字段1,字段2) values(:字段1,:字段2)'; // ADOQuery.SQL.Add('insert into YourTABLE values(:字段1)'); ADOQuery.Parameters.ParamByName('字段1').Value:=trim(Edit1.Text); ADOQuery.Parameters.ParamByName('字段2').Value:=trim(Edit2.Text); ADOQuery.ExecSQL; end; //删除记录 procedure TForm1.Button3Click(Sender: TObject); begin ADOQuery.Close; ADOQuery.SQL.Clear; ADOQuery.SQL.Text:='Delete from YourTABLE where 字段3=:字段3'; //这里没有添加where的条件判断,实际使用时,注意添加判断 // ADOQuery.SQL.Add('Delete from NEW_TABLE where 字段3=:字段3'); ADOQuery.Parameters.ParamByName('字段3').Value:=trim(Edit3.Text); ADOQuery.ExecSQL; //删除记录也可用DeleteRecords()函数 procedure DeleteRecords(AffectRecords: TAffectRecords = arAll); 这个函数有一个参数:AffectRecords可以取如下的值: 1、arCurrent :删除当前记录 2、arFiltered :删除符合Filter过滤后的所有记录(如果你使用Filter过滤的话) 3、arAll :删除所有记录 4、arAllChapters :Delete affects all chapters(ADO chapters) //修改记录 procedure TForm1.Button4Click(Sender: TObject); begin ADOQuery.Close; ADOQuery.SQL.Clear; ADOQuery.SQL.Text:='Update YourTABLE SET 字段4=:字段4'; //这里没有添加where的条件判断,实际使用时,注意添加判断 // ADOQuery.SQL.Add('Update YourTABLE SET 字段4=:字段4'); ADOQuery.Parameters.ParamByName('字段4').Value:=trim(Edit4.Text); ADOQuery.ExecSQL; //即时更新插入、删除、修改后的记录 在上面插入、删除、修改的语句后添加如下代码即可: ADOQuery.Close; ADOQuery.SQL.Add('select * from YourTABLE where 查询条件'); ADOQuery.Open; //使用ADOQuery时注意: 1、如果你需要更改数据,query.requestlive必须为true 2、如果有输入参数的时候,容易出错,通常的错法是这样: 比如:“WHERE abc = : abc” 改正如下:“WHERE abc=:abc”就是说=:前后都不能留空格。 3、ADOQuery.Open与ADOQuery.ExecSQL 有不同之处。 ADOQuery.Open一般用在查询,select时候;而ADOQuery.ExecSQL用在insert,delete,update等。看看李维的高效率数据库应用系统篇吧 不过要先ADOQuery1.Prepared一下会快的 这也是从上面的书中看到的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询