unit untMain;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBTables, se_controls, KsSkinForms, KsSkinEngine, StdCtrls,
  Grids, ValEdit, KsSkinLabels, KsSkinComboBoxs, KsSkinButtons, inifiles,
  ComCtrls, KsSkinEdits, KsSkinTabs;type
  Tmain = class(TForm)
    Database: TDatabase;
    Button1: TSeSkinButton;
    ComboBox: TSeSkinComboBox;
    Label1: TSeSkinLabel;
    btnOK: TSeSkinButton;
    btnCancel: TSeSkinButton;
    PageControl: TPageControl;
    tbsMsSQL: TTabSheet;
    Label2: TSeSkinLabel;
    Label3: TSeSkinLabel;
    edtSvrName: TEdit;
    Label4: TSeSkinLabel;
    edtUserName: TEdit;
    Label5: TSeSkinLabel;
    Label6: TSeSkinLabel;
    edtPassword: TEdit;
    Label7: TSeSkinLabel;
    Label8: TSeSkinLabel;
    edtDatabaseName: TEdit;
    SeSkinForm1: TSeSkinForm;
    SeSkinEngine1: TSeSkinEngine;
    btnBrowFile: TSeSkinButton;
    OpenDialog: TOpenDialog;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure btnOKClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure ComboBoxChange(Sender: TObject);
    procedure ComboBoxKeyPress(Sender: TObject; var Key: Char);
    procedure btnCancelClick(Sender: TObject);
    procedure btnBrowFileClick(Sender: TObject);
  private
    { Private declarations }
    FIniFile: TIniFile;
    function CheckLink: Boolean;
    procedure GetLinkParams;
    procedure SetLinkParams;
  public
    { Public declarations }
  end;var
  main: Tmain;implementation
{$R *.dfm}procedure Tmain.FormCreate(Sender: TObject);
begin
  FIniFile := TIniFile.Create('.\DataBase.ini');
  ComboBox.Text :=  FIniFile.ReadString('DataBase Driver', 'Driver', '');
  GetLinkParams;
end;procedure Tmain.FormDestroy(Sender: TObject);
begin
  FIniFile.Free;
end;procedure Tmain.btnOKClick(Sender: TObject);
begin
  SetLinkParams;
  Close;
end;function Tmain.CheckLink: Boolean;
begin
  Result := False;
  Database.Close;
  Database.DriverName := ComboBox.Text;
  Database.Params.Clear;
  Database.Params.Add('server name=' + edtSvrName.Text);
  Database.Params.Add('user name=' + edtUserName.Text);
  Database.Params.Add('Password=' + edtPassword.Text);
  if UpperCase(ComboBox.Text) = 'MSSQL' then
    Database.Params.Insert(1, 'DataBaseName=' + edtDataBaseName.Text);  try
    Database.Connected := True; ;
    Result := True;
    MessageBox(Handle, ‘中文', '中文', MB_OK + MB_ICONInformation);
  except
    on E: exception do
    begin
      MessageBox(Handle, PChar('中文'#13+E.Message), '´中文',
                 MB_OK + MB_ICONERROR);
    end;
  end;
end;procedure Tmain.Button1Click(Sender: TObject);
begin
  CheckLink;
end;procedure Tmain.GetLinkParams;
begin
  edtSvrName.Text := FIniFile.ReadString('Params','SERVER NAME' ,'' );
  edtUserName.Text := FIniFile.ReadString('Params','USER NAME' ,'' );
  edtPassword.Text := FIniFile.ReadString('Params','PASSWORD' ,'' );
  edtDataBaseName.Text := FIniFile.ReadString('Params','DATABASE NAME' ,'' );
end;procedure Tmain.FormPaint(Sender: TObject);
begin
  PageControl.Canvas.Brush.Color := main.Color;
end;procedure Tmain.ComboBoxChange(Sender: TObject);
begin
  edtSvrName.Text := '';
  edtUserName.Text := '';
  edtPassword.Text := '';
  edtDatabaseName.Text := '';
  btnBrowFile.Visible := False;
  Label2.Caption :=  format('Ö¸¶¨ÏÂÁÐÉèÖÃÒÔÁ¬½Óµ½ %s Êý¾Ý¿â:', [Combobox.Text]);
  if UpperCase(ComboBox.Text) = 'MSSQL' then
  begin
    Label8.Enabled := True;
    edtDataBaseName.Enabled := True;
  end else if UpperCase(ComboBox.Text) = 'ORACLE' then
  begin
    Label8.Enabled := False;
    edtDataBaseName.Enabled := False;
  end else if UpperCase(ComboBox.Text) = 'MSACCESS' then
  begin
    Label8.Enabled := False;
    edtDataBaseName.Enabled := False;
    btnBrowFile.Visible := True;
  end;
end;procedure Tmain.ComboBoxKeyPress(Sender: TObject; var Key: Char);
begin
  key := #0;
end;procedure Tmain.SetLinkParams;
var str: string;
begin
  //Write Params
  FIniFile.WriteString('Params', 'SERVER NAME', edtSvrName.Text);
  FIniFile.WriteString('Params', 'USER NAME', edtUserName.Text);
  FIniFile.WriteString('Params', 'PASSWORD', edtPassword.Text);
  if UpperCase(ComboBox.Text) = 'MSSQL' then
    FIniFile.WriteString('Params', 'DATABASE NAME', edtDataBaseName.Text)
  else
    FIniFile.DeleteKey('Params', 'DATABASE NAME');
  //Write driver
  FIniFile.WriteString('DataBase Driver', 'Driver', ComboBox.Text);
  //write Connection Mode
  FIniFile.WriteBool('Connection Mode', 'IsBDE', True);
  if UpperCase(ComboBox.Text) = 'MSACCESS' then
    FIniFile.WriteBool('Connection Mode', 'IsBDE', False);
end;procedure Tmain.btnCancelClick(Sender: TObject);
begin
  Close;
end;
procedure Tmain.btnBrowFileClick(Sender: TObject);
begin
  if OpenDialog.Execute then
    edtSvrName.Text := OpenDialog.FileName;
end;end.