Delphi ADOQuery查询用户是否存在


本文整理自网络,侵删。

 
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 反外挂,反破解思想代码

Delphi winapi: openprocess、getexitcodeprocess、terminateprocess (qq)

Delphi 在richedit中插入gif图片的方法

Delphi提取字符串

dbgrideh 组件在borland开发工具中应用全攻略

Delphi xe10.1 引用计数

Delphi编程之桌面图标设置

Delphi内嵌汇编语言basm精要

Delphi 给字加边的又一个算法

Delphi 创建文件夹并打开

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...