再补充一下到时我开发的客户端要适应不同的服务器比如说我的SQL SERVER的数据库将来倒入另一个新的 SQL SERVER服务器中则IP变为了 192。168。0。5 ,计算机名也变了
那时在ADOCONNETION里的ConnectString 中设置的参数就无效了呀
所以我想知道的是如何动态的设置那些参数呢
比如我可以作一个登陆对话框,界面上就可以设置这些参数
但这些参数要涉及到哪些,如何写,我就不知道了,所以才发贴问问
希望大家在帮我解答一下!
那时在ADOCONNETION里的ConnectString 中设置的参数就无效了呀
所以我想知道的是如何动态的设置那些参数呢
比如我可以作一个登陆对话框,界面上就可以设置这些参数
但这些参数要涉及到哪些,如何写,我就不知道了,所以才发贴问问
希望大家在帮我解答一下!
ADOConnection
ADOQuery
DataSource
DBGrid
设置它们的属性:
adoconnection1.loginprompt := false;
adoconnection1.connectionstring //设置为你指定的SQL SERVER数据库
adoquery1.connection:=adoconnection1;
datasource1.dataset := adoquery1;
dbgrid1.dataset := datasource1;
adoquer1.active := true;//以上的所有属性都可以在DELPHI的属性栏中设置
这就满足你的要求了!
function GetConnectionString: string;
var
SYSINI: TINIFile;
ServerName, UserName, Password, tmpstr: string;
begin
SYSINI := TIniFile.Create(ExtractFilePath(Application.ExeName)+'DB.INI');
try
ServerName := SYSINI.ReadString('Database', 'ServerName', '');
UserName := SYSINI.ReadString('Database', 'UserName', '');
tmpstr := SYSINI.ReadString('Database', 'Password', '');
Password := Decrypt(tmpstr, '');
Result := '';
Result := 'Provider=OraOLEDB.Oracle.1;Password=' + Password + ';Persist Security Info=True;User ID=' + UserName + ';Data Source='+ServerName+';Extended Properties=""';
finally
SYSINI.Free;
end;
end;function ConnectStrNull:Boolean;
var
SYSINI: TINIFile;
tmpstr:String;
begin
Result:= True;
SYSINI := TIniFile.Create(ExtractFilePath(Application.ExeName)+'DB.INI');
try
tmpstr:= SYSINI.ReadString('Database', 'ServerName', '');
if tmpstr ='' then
exit;
tmpstr:= SYSINI.ReadString('Database', 'UserName', '');
if tmpstr ='' then
exit;
Result:= False;
finally
SYSINI.Free;
end;
end;begin
Application.Initialize;
Application.Title := '生产管理系统'; if ConnectStrNull then
begin
InitForm:= TInitForm.Create(Application);
try
if not InitForm.ShowModal = IDOK then
exit;
finally
InitForm.Free;
InitForm:= nil;
end;
end
else
begin
Application.CreateForm(TDataModule1, DataModule1);
DataModule1.ADOConnection1.Connected:= false;
try
DataModule1.ADOConnection1.ConnectionString:= GetConnectionString;
DataModule1.ADOConnection1.Connected:= true;
except
MessageBox(Application.Handle,'数据库初始化设置错误,请与系统管理员联系!','错误',MB_OK OR MB_ICONSTOP);
Exit;
end;
Application.CreateForm(TMainform, Mainform);
Application.Run;
end;
end.
一个TADONonnection控件
一个button,caption为"测试连接"双击它添加如下代码:procedure TForm1.Button1Click(Sender: TObject);
var a,b,c,i:string;
begin
adoconnection1.connected:=false;
ADOConnection1.ConnectionString:='';
if trim(edit2.text)='' then
begin
ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=True;User ID='+trim(edit1.text)+';Initial Catalog=ls;Data Source='+trim(edit3.text);
end
else
begin
ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password='+trim(edit2.text)+';Persist Security Info=True;User ID='+trim(edit1.text)+';Initial Catalog=ls;Data Source='+trim(edit3.text);
end;
ADOConnection1.loginprompt:=false;
try
with ADOconnection1 do
begin
connected:=true;
showmessage('连接成功!') ;
end;
except
raise tmouseexception.create('错误!连接失败!')
end;
end;