delphi7 TADODataSet TDBGridExt 简单应用

unit Unit2;

interface

uses
  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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值