应用TADOConnection、TADODataSet和TADOCommand组件
来源:互联网 发布:网络直播的起源 编辑:程序博客网 时间:2024/04/30 14:17
unit U_AdoQuery;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, ADODB, Buttons, DBClient, ExtCtrls,SQLEdit, Grids, DBGrids;type TForm1 = class(TForm) DataSource1: TDataSource; QueryButton: TButton; EditCommandText: TSpeedButton; ADOQuery1: TADOQuery; SQLText: TMemo; Connection: TADOConnection; DBGrid1: TDBGrid; Label1: TLabel; procedure QueryButtonClick(Sender: TObject); procedure EditCommandTextClick(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.QueryButtonClick(Sender: TObject);begin AdoQuery1.Close; AdoQuery1.SQL.Clear; AdoQuery1.SQL.Add(SQLText.Text); AdoQuery1.Open;end;procedure TForm1.EditCommandTextClick(Sender: TObject);var Command: string;begin Command := SQLText.Text; if EditSQL(Command, Connection.GetTableNames, Connection.GetFieldNames) then SQLText.Text := Command;end;end.unit U_AdoCommand;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids;type TF_AdoCommand = class(TForm) ADOConnection1: TADOConnection; ADOCommand1: TADOCommand; DataSource1: TDataSource; DBGrid1: TDBGrid; ADODataSet1: TADODataSet; ADOCommand2: TADOCommand; ExcuteButton: TButton; CancelButton: TButton; DataSource2: TDataSource; DBGrid2: TDBGrid; CancelAllButton: TButton; ADODataSet2: TADODataSet; ExcuteAllButton: TButton; ComboBox1: TComboBox; Label1: TLabel; procedure ExcuteButtonClick(Sender: TObject); procedure CancelButtonClick(Sender: TObject); procedure CancelAllButtonClick(Sender: TObject); procedure ExcuteAllButtonClick(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;var F_AdoCommand: TF_AdoCommand;implementation{$R *.dfm}procedure TF_AdoCommand.ExcuteButtonClick(Sender: TObject);beginif Combobox1.ItemIndex =0 then//调用第一个ADO命令组件的Excute方法,并在DBGrid1中显示查询结果 with ADOCommand1 do begin CommandType := cmdText; CommandText :='select * from country'; ADODataSet1.Recordset := Execute; endelse//调用第二个ADO命令组件的Excute方法,并在DBGrid2中显示查询结果 with ADOCommand2 do begin CommandType := cmdText; CommandText :='select * from employee'; ADODataSet2.Recordset := Execute; end;end;procedure TF_AdoCommand.CancelButtonClick(Sender: TObject);begin if Combobox1.ItemIndex =0 then begin ADOCommand1.Cancel; ADODataSet1.Recordset :=nil ; end else begin ADOCommand2.Cancel; ADODataSet2.Recordset :=nil; end;end;procedure TF_AdoCommand.CancelAllButtonClick(Sender: TObject);begin ADOCommand1.Cancel; ADOCommand2.Cancel; ADODataSet1.Recordset :=nil; ADODataSet2.Recordset :=nil;end;procedure TF_AdoCommand.ExcuteAllButtonClick(Sender: TObject);vari: Integer;begin ADOCommand2.CommandText :='Update'; for i := 0 to (ADOConnection1.CommandCount-1) do begin if i=0 then begin ADOConnection1.Commands[i].CommandType := cmdText; ADOConnection1.Commands[i].CommandText :='select * from country'; ADODataSet1.Recordset := ADOConnection1.Commands[i].Execute; end else if i=1 then begin ADOConnection1.Commands[i].CommandType := cmdText; ADOConnection1.Commands[i].CommandText :='select * from employee'; ADODataSet2.Recordset := ADOConnection1.Commands[i].Execute; end; end;end;procedure TF_AdoCommand.FormCreate(Sender: TObject);vari: Integer;begin ComboBox1.Items.Clear; //添加的列表项的数目等于ADOConnection1组件所相关的TADOCommand组件的个数 for i := 0 to (ADOConnection1.CommandCount-1) do //添加的列表项为相关TADOCommand组件的名称 Combobox1.Items.Add(ADOConnection1.Commands[i].Name) ; Combobox1.ItemIndex :=0;end;end.