delphi7 TADODataSet TDBGridExt 简单应用

来源:互联网 发布:苹果mac怎么更新不了 编辑:程序博客网 时间:2024/05/21 12:45
unit Unit2;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, DB, ADODB, ComCtrls, GridsEh, DBGridEh, DBGridExt, StdCtrls,  Buttons;type  TForm2 = class(TForm)    dsData: TADODataSet;    stat1: TStatusBar;    dbgrdxt1: TDBGridExt;  //在object inspector 里DataSource属性里添加 ds1    btn1: TBitBtn;    conConnectionSqlServer: TADOConnection;    ds1: TDataSource;    function ExecutesqlReturnRecord(const sql :string):TADODataSet;    procedure btn1Click(Sender: TObject);    procedure FormCreate(Sender: TObject);  private    { Private declarations }    bDBisConnected:Boolean;  public    { Public declarations }    function  DbConnect:Boolean;  end;var  Form2: TForm2;implementation{$R *.dfm}function  TForm2.DbConnect:Boolean;//封装一个数据库连接函数begin  Result := false;  if not bDBisConnected then  begin    with dsData do    begin      //TADOConnection 和  TADODataSet 都有 ConnectionString 属性   TADODataSet允许直接连接数据库      Connection.ConnectionString  := 'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=testDB;password =123456;Data Source=LJF-PC\LJF';      try      //Connection.Create(nil);       Connection.ConnectionTimeout := 20;       Connection.CommandTimeout := 30 ;       Connection.Connected:=True;       Result := True;       bDBisConnected := True;      except        Result :=False;        bDBisConnected := False;        ShowMessage('not connected');  //        raise;      //  Exit;      end;    end;  end else  Result := True;end;function TForm2.ExecutesqlReturnRecord(const sql :string):TADODataSet;var  lCursor: TCurSor;begin   Result := nil;  try    Result := TAdoDataset.Create(nil);    Result.Connection := dsData.Connection;    Result.LockType := ltUnspecified;    //用来设置或取得Dataset打开时,记录如何锁定  1 ltUnspecified不指定锁定类型 ltReadOnly只读 ltBatchOptimistic 批量优化锁定....    Result.CommandTimeout := 1800;    if bDBisConnected then    begin      Result.Close;      Result.CommandText := sql;      lCursor := Screen.Cursor;      Screen.Cursor := crSQLWait;      try        Result.Open;//Derived from TDataSet //open相当于将active属性设置为true,Dataset状态为打开,也将触发一些相应的事件 ,数据集状态为dsBrowse        Screen.Cursor := crArrow;      except        on E: Exception do        begin          ShowMessage(E.Message);          raise;        end;      end;    end;;  except    on E: Exception do    begin      ShowMessage(E.Message);      raise;    end;  end;end;procedure TForm2.btn1Click(Sender: TObject);begin  dbgrdxt1.ClearColWidthList;  dbgrdxt1.DataSource.DataSet :=  ExecutesqlReturnRecord('SELECT [ID],[name],[score] FROM [testDB].[dbo].[stu]');end;procedure TForm2.FormCreate(Sender: TObject);begin   if DbConnect then      stat1.Panels[0].Text := '数据库已连接!'    else      stat1.Panels[0].Text := '数据库未连接!';end;end.



0 0
原创粉丝点击