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利用scrollbox实现图像漫游

Delphi program name、process id、window handle、process handle 的转换函数

Delphi 锁住listview防止刷新

Delphi 执行dos命令并捕获输出

Delphi bmp转换png

Delphi edit控制字居中,居左,居右

Delphi中tinifile类 操作ini文件

Delphi tidhttp+tidssliohandlersocket+ssl

Delphi直接实现分享图片功能

Delphi获取android上的imei

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



打赏

取消

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

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

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

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

评论

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