Delphi的TDataSetProvider、TDataSet、TAdoQuery、TDataSource控件的组合使用
照旧先上控件布局图:
1、File-New-VCL Forms Application,找到控件挨个填上去
用到的控件:Button、TDataSetProvider、TDataSet、TAdoQuery、TDataSource、DbgridEh
设置控件之间的指向关系:
1>ds1的DataSet指向ds2
2>dtsprvdr1的DataSet指向qry1
3>ds2的ProviderName指向dtsprvdr1
4>DbGrideh的DataSource指向ds1
2、File-New-Other-DataModule,确定
添加一个Adoconnection控件,用于连连接数据库
为了方便,直接双击控件,配置连接串
保存文件
3、此时回到主窗体的pas文件,引用上边新建的DataModual的单元,
在主窗体找到qry1,设置他的DataSource,指向DataModule5.ADOConnection1
4、给qry1的SQL属性增加所要查询的语句,例如:select * from testTable
5、主窗体pas文件增加函数:
1 procedure GetConnected(Conn: TADOConnection); 2 begin 3 if Conn.Connected = False then 4 begin 5 Conn.Connected := True; 6 end; 7 end; 8 9 function QuerySql(Sql: string; Conn: TADOConnection): boolean; 10 var 11 AdoQuery:TADOQuery; 12 begin 13 Result := False; 14 try 15 try 16 GetConnected(Conn); 17 AdoQuery := TAdoquery.Create(nil); //必须要创建类的实例 18 AdoQuery.Close; 19 AdoQuery.Connection := Conn; 20 AdoQuery.SQL.Clear; 21 AdoQuery.SQL.Add(Sql); 22 AdoQuery.Open; 23 Result := AdoQuery.RecordCount > 0; 24 except 25 on E: Exception do 26 begin 27 ShowMessage('语句:' + Sql + #13#10 + '异常类名称:' + E.ClassName + #13#10 + '异常信息:' + E.Message); 28 29 Application.MessageBox('查询数据库失败,请重新查询!', '提示', MB_OK + MB_ICONINFORMATION); 30 Result := False; 31 end; 32 end; 33 finally 34 end; 35 end;
6、双击Button按钮:
1 QuerySql('select * from testTable',DataModule5.ADOConnection1); 2 ds2.Active := False; 3 ds2.Active := True;
7、ok,保存,编译运行