📄 connectsql.~pas
字号:
unit Connectsql;
interface
uses
Windows, Messages, SysUtils, Classes,IniFiles, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, ExtCtrls,Registry,ShellApi, DB, ADODB,jpeg,uPublicvar;
type
TConnectsqlForm = class(TForm)
Edit_username: TEdit;
Edit_password1: TEdit;
Edit_password2: TEdit;
BitBtn_Ok: TBitBtn;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Panel1: TPanel;
Memo1: TMemo;
ADOQuery1: TADOQuery;
ADOConnection1: TADOConnection;
Edit2: TEdit;
Label5: TLabel;
Panel2: TPanel;
Image2: TImage;
Label7: TLabel;
Image3: TImage;
Label6: TLabel;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BitBtn_OkClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Edit_usernameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit_password1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit_password2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormCreate(Sender: TObject);
procedure Edit2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Edit1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure Edit_usernameMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
procedure Edit_password1MouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
private
vuserconnet:Tinifile;
// vconnuser:string;
// vconnpass:string;
{ Private declarations }
public
{ Public declarations }
end;
var
ConnectsqlForm: TConnectsqlForm;
vWinPath:array[0..255] of char;
implementation
function SQLConfigDataSource(hwndParent: Integer; fRequest: Integer;
lpszDriverString: String; lpszAttributes: String): Integer;
stdcall;external 'ODBCCP32.DLL';
{$R *.DFM}
procedure TConnectsqlForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
//BitBtn_OkClick(Sender);
end;
procedure TConnectsqlForm.BitBtn_OkClick(Sender: TObject);
var
ado,deserver:string;
fini:tinifile;
begin
if edit1.Text='' then
begin
showmessage('没有服务器名称,请重新录入!');
Edit1.SetFocus;
exit;
end;
if Edit_password1.text<>Edit_password2.text then
begin
showmessage('你录入的密码不一致,请重新录入!');
Edit_username.SetFocus;
exit;
end;
adoconnection1.Connected:=false;
ado:='Provider=SQLOLEDB.1;Password='''+Edit_password1.text+''' ;Persist Security Info=True;User ID= '''+Edit_username.Text+''' ;Data Source= '''+Edit1.Text+''';Initial Catalog=master';
AdoConnection1.ConnectionString:=ado;
try
adoconnection1.Connected:=true;
except
showmessage('登录帐号或密码错误');
abort;
end;
try
FINI := TINIFile.Create(strpath+'\server.INI');
FINI.WriteString('server', 'substring', trim(edit1.text));
FINI.WriteString('dbname', 'substring', trim(edit2.text));
FINI.WriteString('user', 'substring', trim(Edit_username.text));
FINI.WriteString('password', 'substring', trim(Edit_password1.text));
finally
FINI.Destroy;
end;
showmessage('设置服务器成功,请退出系统重新登陆');
close;
end;
procedure TConnectsqlForm.FormShow(Sender: TObject);
begin
left:=(Screen.Width div 2)- (ConnectsqlForm.Width div 2);
top:=(Screen.Height)-ConnectsqlForm.Height-20;
end;
procedure TConnectsqlForm.Edit_usernameKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=vk_return then Edit_password1.SetFocus;
end;
procedure TConnectsqlForm.Edit_password1KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=vk_return then Edit_password2.SetFocus;
end;
procedure TConnectsqlForm.Edit_password2KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=vk_return then BitBtn_Ok.SetFocus;
end;
procedure TConnectsqlForm.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_return then Edit_username.SetFocus;
end;
procedure TConnectsqlForm.FormCreate(Sender: TObject);
Const
NEW3 = '\Software\Borland';
NEW1 = '\Software\Borland\Database Engine';
NEW2 = '\Software\Borland\BLW32';
NEWVA11 = 'DLLPATH';
NEWVA12 = 'Configfile01';
NEWVA13 ='\Licenses\4250E830-6AC2-11cf-8ADB-00AA00C00905';
Var
Reg : TRegistry;
var maindir:string;
begin
Reg := TRegistry.Create;
// 当前目录
MainDir:=ExtractFilePath(Application.Exename);
if copy(MainDir,length(MainDir),1)<>'\' then MainDir:=MainDir+'\';
edit2.Text:='master';
//
try
Reg.RootKey := HKEY_LOCAL_MACHINE;
Reg.CreateKey(NEW3); // 创建我们的主键
Reg.OpenKey(NEW3, True); // 进入我们自己的Borland键中
Reg.CreateKey(NEW1); // 创建我们的主键1
Reg.CreateKey(NEW2); // 创建我们的主键2
//
Reg.OpenKey(NEW1, True); // 进入我们自己的NEW1键中
Reg.WriteString(NEWVA11, MainDir+'BDE');
Reg.WriteString('Configfile01', MainDir+'BDE\Idapi.cfg');
//
Reg.OpenKey(NEW2, True); // 进入我们自己的NEW2键中
Reg.WriteString('BLAPIPATH', MainDir+'BDE');
Reg.WriteString('LOCALE_LIB0 ', MainDir+'BDE\Fareast.btl');
Reg.WriteString('LOCALE_LIB1 ', MainDir+'BDE\usa.btl');
//注册MSCOMM32.OCX
Reg.RootKey := HKEY_CLASSES_ROOT;
Reg.CreateKey(NEWVA13); // 创建我们的主键
Reg.OpenKey(NEWVA13, True);
Reg.WriteString('', 'kjljvjjjoquqmjjjvpqqkqmqykypoqjquoun');
finally
Reg.Free; // 用 Try..Finally 结构确保 REG 变量能够释放。
end;
end;
procedure TConnectsqlForm.Edit2MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
memo1.Lines.Text:=' 关于数据库文件'+#10#13+'SQL Server 2000 数据库文件。此项系统会自动进行。';
end;
procedure TConnectsqlForm.Edit1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
memo1.Lines.Text:=' 关于服务器地址'+#10#13+'网络中作为SQL Server2000服务器的计算机IP地址或机器名。必须保证与此服务器的连通及服务器中SQL Server服务已打开。';
end;
procedure TConnectsqlForm.Edit_usernameMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
memo1.Lines.Text:=' 关于登录名'+#10#13+'登录SQL Server服务器的授权帐号。可通过数据管理员获取。';
end;
procedure TConnectsqlForm.Edit_password1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
memo1.Lines.Text:=' 关于登录口令'+#10#13+'登录SQL Server服务器的授权口令。可通过数据管理员获取。';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -