本文整理自网络,侵删。
procedure TForm1.Bt_findClick(Sender: TObject);var i,count:Integer; result:Boolean;begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from user where id=:m_id') ; //查找表中所有内容 ADOQuery1.Parameters.ParamByName('m_id').Value:=trim(Edit1.Text); //将Edit1.Text的值赋给m_id ADOQuery1.Open; //以上close、clear、open是经典的语句,在每次查询之前先把上次查询之前的内容给关了 //如果不关,第一次查询是没问题的,可如果adoqury1再用一次的话,就可能与上次发生冲突 ADOQuery1.First; count:=ADOQuery1.RecordCount; //得到数据库中数据的数目 result:=true; for i:=0 to count do begin if ADOQuery1.FieldByName('password').AsString=Edit2.Text then //将password值转换为字符串后判断是否等于Edit2.Text的值,因为Edit2.Text是字符串类型的 begin Label3.Caption:='存在用户'; result:=false; break; end; ADOQuery1.Next; end; if result then begin Label3.Caption:='不存在用户'; end;end;总结:Close是因为之前有对ADOQuery1进行OPEN,当在OPEN状态下对数据集进行操作是不行的,就像你想删除一个正在打开的EXCEL文档无法执行一样,这里也是一样,想要对ADOQuery1进行操作,前提必须是它要在关闭状。
.sql.clear 清除原来的sql语句
FieldByName是根据名字获取字段 如 数据库表 学生 设计了个字段 学号 ParamByName是取sql语句中的参数 如 select *from table where no = :studentNo
First:将记录指针置於数据集第一记录处;Next:将记录指针移至下一条记录处;Prior:将记录指针移置前一条记录处;Last:将记录打针移到数据集最后一条记录处;
ExecSQL 与 open的区别在于:exec 是执行不且不返回结果集。 通常用于 增删改open 返回结果集,通常用于查询――――――――――――――――
原文链接:https://blog.csdn.net/kisssfish/article/details/88741117
相关阅读 >>
Delphi access数据库密码的mdb的访问报错“无法启动应用程序,或是已被其他用户已独占方式打开”
Delphi 获取随机字符串的方法 getrandomstring
Delphi 文字的高度与宽度: canvas.textextent
更多相关阅读请进入《Delphi》频道 >>