用户名:  密码:   
您当前的位置:首页 > 程序设计 >  Delphi > 

AdoQuery控件的使用

上次修改时间: 2023-05-07 19:32:16      来源:网络总结      作者:钢铁长陈
上一页      路径:DSD\Learn\Delphi语言\常用控件之数据库控件与操作相关\      下一页

AdoQuery控件的使用

不同与AdoTable使用同一个Connection连接,否则出错,原因未知

例1:
procedure TDenLFrm.Button1Click(Sender: TObject);
var
    Query : TADOQuery;
begin
    try
        Query := TADOQuery.Create(nil);  //有这句代码不需要拖入AdoQuery控件了
        Query.Connection := AcPer1 ;
        Query.SQL.Add('select * from users where yhmc=:yhmc and yhkl=:yhkl'); //**特别要注意这里的yhmc与yhkl是变量,它的赋值是等+冒号,而delphi是冒号+等号
        Query.Parameters.ParamByName('yhmc').Value := 'admin' ;//给上面的变量赋值
        Query.Parameters.ParamByName('yhkl').Value := Edpass.Text ;//输入的密码
        Query.Open;
        if Query.RecordCount = 0 then
        begin
            MessageDlg('请输入正确的用户名和密码',mtError,[mbok],0);
                       //如果查到总数为0 ,就弹出"请输入正确的用户名和密码"
            Exit;
        end;

        if query.FieldByName('yhqx').AsInteger =0 then //查询出的数据,yhqx那个字段的值如果为0
        begin
   。。。。。。。
        end;
        if  query.FieldByName('yhqx').AsInteger =1 then
        begin
       。。。。
        end;
        Query.Close;
        Query.Free;  //在按钮中创建表是一个局部的,必须在按钮里释放
        Mmain.Showmodal;
        DenLfrm.close;  //关闭登录对话窗体
    except
        MessageDlg('连接数据库出错!',mtError,[mbok],0);
    end;
end;

例2:
   adoquery2.close;
   adoquery2.SQL.clear;
   adoquery2.SQL.Add('select b.姓名,a.* from 工资发放历史表 a,职员基本信息表 b');
   adoquery2.SQL.add('where (a.职员编号=b.职员编号)and((b.姓名 like''%'+edit29.Text+'%'')and');
   adoquery2.sql.add('(a.日期 like ''%'+edit28.Text+'%''))');
   adoquery2.Open;//开始由于没写这句,郁闷了一下午.总是提示列索引超出范围.
     for i:=3 to 29 do
     dbgrid6.Columns[i].width:=64;
 
例3:AdoQuery连续执行多条语句,以及ExeSQL与open的区别
DataFrm.qry3.Close;
DataFrm.qry3.SQL.Clear;  //使用该语句后AdoQuery查询在左侧SQL属性中设置的SQL语句将被清空,不是执行你的要执行的语句后它又恢复,要下次启动程序才恢复
DataFrm.qry3.SQL.Add('insert into salesdata (shopname,salesday,salesmoney,updatetime) values (''抖音小店2'',''2023-05-06'',2233,getdate())');
DataFrm.qry3.ExecSQL; //使用ExeSQL查询执行后处理关闭状态,就是其属性Active:=false,如查询下连接的DbGrid就不显示内容  
//由于前面执行了其它语句,默认的SQL语句被清空,需要再次添加语句,下面的DBgrid才会显示
DataFrm.qry3.Close;
DataFrm.qry3.SQL.Clear;
DataFrm.qry3.SQL.Add('select * from salesdata'); 
DataFrm.qry3.open; //使用OPEN查询执行后处理开启状态,就是其属性Active:=false,如查询下连接的DbGrid会显示内容