📄 conf.pas
字号:
unit conf;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, StrUtils, ExtCtrls, DB,
ADODB, Registry;
type
TConfigForm = class(TForm)
IsExistDB: TADOQuery;
InitConn: TADOConnection;
SpeedButton1: TSpeedButton;
BitBtn2: TBitBtn;
GroupBox1: TGroupBox;
Label1: TLabel;
Label4: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit4: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Image1: TImage;
Label5: TLabel;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
ConfigForm: TConfigForm;
implementation
uses inc,main;
{$R *.dfm}
procedure TConfigForm.FormShow(Sender: TObject);
var
vReg:TRegistry;//定义注册表变量
TmpStr:string;
i:integer;
vConn1,
vConn2,
vConn3,
vConn4:string;
vP1,
vP2,
vP3,
vP4:integer;
begin
if ConnStr='' then Exit;
vReg:=TRegistry.Create;
vReg.RootKey :=HKEY_LOCAL_MACHINE;//获取注册表项
vReg.OpenKey('SoftWare\Microsoft\Microsoft Access',False);
if vReg.ValueExists('scllong') then
ConnStr:=vReg.ReadString('scllong')
else
ConnStr:='';
TmpStr:=ConnStr;
vP1:=Pos('User ID=',TmpStr);
vP2:=Pos('Password=',TmpStr);
vP3:=Pos('Initial Catalog=',TmpStr);
vP4:=Pos('Data Source=',TmpStr);
for i:=vP1+5 to vP2-6 do
vConn1:=vConn1+MidStr(TmpStr,i,1);
for i:=vP2+6 to vP3-6 do
vConn2:=vConn2+MidStr(TmpStr,i,1);
for i:=vP3+13 to vP4-6 do
vConn3:=vConn3+MidStr(TmpStr,i,1);
for i:=vP4+9 to length(TmpStr)-1 do
vConn4:=vConn4+MidStr(TmpStr,i,1); //服务器名
Edit1.Text :=vConn4;
Edit4.Text :=vConn3;
Edit2.Text :=vConn1;
Edit3.Text :=vConn2;
vReg.CloseKey;//关闭注册表对象
vReg.Free;
end;
procedure TConfigForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;//释放窗体
end;
procedure TConfigForm.SpeedButton1Click(Sender: TObject);
//定义各个数据表的表属性
//TableStr:AnsiString=;
var
DBStr,
vConn0,
vConn1,
vConn2,
vConn3,
vConn4,
vConn5,
vtmpStr:string;
i:integer;
vReg:TRegistry;
vDBSource:string;
begin
if Edit1.Text ='' then begin
MessageDlg('请输入SQL SERVER服务器地址', mtInformation,[mbOk], 0);
Exit;
end;
if Edit4.Text ='' then begin
MessageDlg('请输入连接SQL SERVER数据库服务器的数据库名称', mtInformation,[mbOk], 0);
Exit;
end;
if Edit2.Text ='' then begin
MessageDlg('请输入连接SQL SERVER数据库服务器的用户名', mtInformation,[mbOk], 0);
Exit;
end;
//DBStr:='CREATE DATABASE ['+Edit4.Text+']';
vDBSource:='USE '+Edit4.Text+' ';
vReg:=TRegistry.Create;
vReg.RootKey :=HKEY_LOCAL_MACHINE;
vReg.OpenKey('SoftWare\Microsoft\Microsoft Access',True);
vConn0:='合同管理@2006---www.wwwwww.www ';
vConn1:='Provider=SQLOLEDB.1;Persist Security Info=False;';
vConn2:='User ID='+Edit2.Text+';';
vConn3:='Password='+Edit3.Text+';';
vConn4:='Initial Catalog='+Edit4.Text+';';
vConn5:='Data Source='+Edit1.Text;
ConnStr:=vConn0+#13+vConn1+#13+vConn2+#13+vConn3+#13+vConn4+#13+vConn5+#13+#13;
try
with InitConn do begin
Close;
ConnectionString :=ConnStr;
//LoginPrompt :=false;
label5.Caption :='正在尝试连接数据库服务器,请稍候...';
ConfigForm.Update;
Connected:=True;
IsExistDB.Close;
IsExistDB.SQL.Clear;
IsExistDB.SQL.Add('USE master ');
IsExistDB.SQL.Add('select * from sysdatabases where name='''+Edit4.Text+'''');
IsExistDB.Open;
end;
except
MessageDlg('对不起,在尝试连接数据库服务器或'+#13+'创建数据库或数据表过程中出现错误,'+#13+'请与本软件开发人员联系。', mtInformation,[mbOk], 0);
ConnStr:='';
Exit;
end;
i:=pos('master',ConnStr);
vtmpStr:=LeftStr(ConnStr,i-1);
vtmpStr:=vtmpStr+Edit4.Text;
vtmpStr:=vtmpStr+RightStr(ConnStr,Length(ConnStr)-i-5);
ConnStr:=vtmpStr;
vReg.WriteString('scllong',ConnStr);
vReg.CloseKey;
vReg.Free;
Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -