⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sqlserversetup.pas

📁 这是我用Delphi编写的数据库连接器,目前支持Oracle ,sql server 2000 ,Access,同时欢迎致邮bailianglv@163.com,共同研究
💻 PAS
字号:
unit SqlServerSetup;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,adodb,
  Dialogs, TFlatButtonUnit, ExtCtrls, TFlatSpinEditUnit, StdCtrls,
  TFlatEditUnit, WinSkinData, DB,IniFiles, ComCtrls;

type
  TAdoDBConnect = record
    UserID: string;
    Pwd: string;
    DataBase: string;
    ServerIP: string;
    FilePath:string;
  end;
  TForm1 = class(TForm)
    Panel1: TPanel;
    BtnConnect: TFlatButton;
    BtnOK: TFlatButton;
    BtnCancel: TFlatButton;
    ADOConnection1: TADOConnection;
    RadioGroup1: TRadioGroup;
    GroupBox1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    EdtServer: TFlatEdit;
    EdtDB: TFlatEdit;
    EdtUser: TFlatEdit;
    EdtPwd: TFlatEdit;
    Panel2: TPanel;
    Panel3: TPanel;
    OpenDialog1: TOpenDialog;
    EdtFilePath: TFlatEdit;
    Button1: TFlatButton;
    Label6: TLabel;
    OraDB: TFlatEdit;
    Label7: TLabel;
    OraUser: TFlatEdit;
    Label8: TLabel;
    OraPwd: TFlatEdit;
    Label5: TLabel;
    procedure BtnConnectClick(Sender: TObject);
    procedure BtnOKClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BtnCancelClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
  private
    { Private declarations }

    function ConnectDB(Con:TAdoconnection;CInfo:TAdoDBConnect):boolean;
    procedure PanelVisible(Panel1,Panel2,Panel3:TPanel);
  public
    { Public declarations }
  end;



var
  Form1: TForm1;

implementation

{$R *.dfm}
var
  DBInfo:TAdoDBConnect;
  IniFile:TIniFile;
function TForm1.ConnectDB(Con: TAdoconnection;
  CInfo: TAdoDBConnect): boolean;
begin
  Result:=true;
  case RadioGroup1.ItemIndex of
    0:
      Con.ConnectionString:=Format('Provider=SQLOLEDB.1;Password=%s;User ID=%s;Initial Catalog=%s;'
        +'Data Source=%s;',[CInfo.Pwd, CInfo.UserID, CInfo.DataBase, CInfo.ServerIP]);
      // +'Persist Security Info=True;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False';
    1:Con.ConnectionString:=Format('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Persist Security Info=True;',[CInfo.FilePath]);
    2:Con.ConnectionString:=Format('Provider=OraOledb.Oracle.1;password=%s;persist security Info=True;User ID=%s;Data Source=%s',[CInfo.pwd,CInfo.UserID,CInfo.DataBase]);
  end;
    try
      Con.Connected:=true;
    except
      on E:Exception do
      begin
        ShowMessage('数据库连接错误:' + E.Message);
        Result := False;
      end;
    end;  //end try
end;

procedure TForm1.BtnConnectClick(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0:begin
    DBInfo.UserID:=EdtUser.Text;
    DBInfo.Pwd:=EdtPwd.Text;
    DBInfo.DataBase:=EdtDB.Text;
    DBInfo.ServerIP:=EdtServer.Text;
  end;
1:begin
    DBInfo.FilePath:=EdtFilePath.Text;
  end;
2:begin
    DBInfo.UserID:=OraUser.Text;
    DBInfo.Pwd:=OraPwd.Text;
    DBInfo.DataBase:=OraDB.Text;
  end;
end;
 if ConnectDB(ADOConnection1,DBInfo) then
   Application.MessageBox('数据库连接成功!','信息提示',MB_OK+MB_IconInformation);
end;

procedure TForm1.BtnOKClick(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0:begin
    IniFile.WriteString('DBConnect','ServerIP',EdtServer.Text);
    IniFile.WriteString('DBConnect','DataBase',EdtDB.Text);
    IniFile.WriteString('DBConnect','UserID',EdtUser.Text);
    IniFile.WriteString('DBConnect','pwd',EdtPwd.Text);
  end;
1:begin
    IniFile.WriteString('DBConnect','FilePath',EdtFilePath.Text);
  end;
2:begin
    IniFile.WriteString('DBConnect','DataBase',OraDB.Text);
    IniFile.WriteString('DBConnect','UserID',OraUser.Text);
    IniFile.WriteString('DBConnect','pwd',OraPwd.Text);
  end;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
    IniFile:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'SqlSetup.ini');
    EdtUser.Text:=IniFile.ReadString('DBConnect','UserID','sa');
    EdtPwd.Text:=IniFile.ReadString('DBConnect','Pwd','sa');
    EdtServer.Text:=IniFile.ReadString('DBConnect','ServerIP','');
    EdtDB.text:=IniFile.ReadString('DBConnect','DataBase','');
    PanelVisible(GroupBox1,Panel2,Panel3);
 end;

procedure TForm1.BtnCancelClick(Sender: TObject);
begin
  close;
end;

procedure TForm1.PanelVisible(Panel1,Panel2,Panel3: TPanel);
begin
  Panel1.Visible:=true;
  Panel2.Visible:=false;
  Panel3.Visible:=false;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  OpenDialog1.Filter:='Access数据库(*.mdb)|*.mdb';
  if OpenDialog1.Execute then
    EdtFilePath.Text:=OpenDialog1.FileName;
end;

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0:begin
    PanelVisible(GroupBox1,Panel2,Panel3);
    EdtUser.Text:=IniFile.ReadString('DBConnect','UserID','sa');
    EdtPwd.Text:=IniFile.ReadString('DBConnect','Pwd','sa');
    EdtServer.Text:=IniFile.ReadString('DBConnect','ServerIP','');
    EdtDB.text:=IniFile.ReadString('DBConnect','DataBase','');
  end;
1:begin
    PanelVisible(Panel2,GroupBox1,Panel3);
    EdtFilePath.Text:=IniFile.ReadString('DBConnect','FilePath','');
  end;
2:begin
    PanelVisible(Panel3,GroupBox1,Panel2);
    EdtUser.Text:=IniFile.ReadString('DBConnect','UserID','sa');
    EdtPwd.Text:=IniFile.ReadString('DBConnect','Pwd','sa');
    EdtDB.text:=IniFile.ReadString('DBConnect','DataBase','');
  end;
end;
end;
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -