unit uMain;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, dxCntner, dxEditor, dxExEdtr, dxEdLib, StdCtrls, ComCtrls,ComObj, Buttons;
type TfrmMain = class(TForm) Panel1: TPanel; Bevel1: TBevel; Bevel2: TBevel; Bevel4: TBevel; Label1: TLabel; HostName: TdxPickEdit; Label2: TLabel; DataBaseName: TdxPickEdit; GroupBox1: TGroupBox; Label3: TLabel; dxEdit1: TdxEdit; BitBtn1: TBitBtn; BitBtn2: TBitBtn; Label4: TLabel; Label5: TLabel; UserID: TdxEdit; UserPass: TdxEdit; Label6: TLabel; PassLogin: TRadioButton; NtLogin: TRadioButton; procedure HostNameDropDown(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure DataBaseNameDropDown(Sender: TObject); procedure NtLoginClick(Sender: TObject); procedure PassLoginClick(Sender: TObject); private { Private declarations } public { Public declarations } end;
var frmMain: TfrmMain;
implementation
{$R *.dfm}
procedure TfrmMain.HostNameDropDown(Sender: TObject); var SQLServer:Variant; ServerList:Variant; i,nServers:integer;
begin if HostName.Items.Count<1 then begin HostName.Items.Clear; SQLServer:=CreateOleObject('SQLDMO.Application'); ServerList:=SQLServer.ListAvailableSQLServers; nServers:=ServerList.Count; for i:=0 to nservers-1 do HostName.Items.Add(ServerList.Item(i)); SQLServer:=NULL; serverList:=NULL; end; end; procedure TfrmMain.BitBtn2Click(Sender: TObject); begin Close; end;
procedure TfrmMain.DataBaseNameDropDown(Sender: TObject); var SQLServer:Variant; Server:Variant; db:Variant; i,j:integer; begin SQLServer:=CreateOleObject('SQLDMO.Application'); Server:=CreateOleObject('SQLDMO.SQLServer'); if NtLogin.Checked then begin Server.LoginSecure:=True; //设置为WINDOWS登录模式 Server.Connect(HostName.Text); Server.IntegratedSecurity.SecurityMode:=1; Server.DisConnect; Server.Stop; while Server.Status<>3 do begin end; Server.Start(True,HostName.Text); end else begin Server.LoginSecure:=True; //设置为混合登录模式 Server.Connect(HostName.Text); Server.IntegratedSecurity.SecurityMode:=2; Server.DisConnect; Server.Stop; while Server.Status<>3 do begin end; Server.Start(True,HostName.Text); end;
db:=Server.DataBases; i:=db.Count; DataBaseName.Items.Clear; for j:=1 to i do DataBaseName.Items.Add(db.item(j).name);
Server:=NULL; SQLServer:=NULL; db:=NULL; end;
procedure TfrmMain.NtLoginClick(Sender: TObject); begin if Ntlogin.Checked=True then begin UserID.Enabled:=False; UserPass.Enabled:=False; end;
end;
procedure TfrmMain.PassLoginClick(Sender: TObject); begin if PassLogin.Checked=True then begin UserID.Enabled:=True; UserPass.Enabled:=True; end; end;
end. 程序中使用的控件为Developer Express Inc的扩展控件。经过测试可通过两种登录方式 
|