在C/S结构下,程序使用ADO直接连接SQL 2000数据库,请问如何设置客户端的ADO连接字符串?使他可以动态的适应服务器的机器名和判断服务器是否使用WINDOWS集成登陆和SQL单独登陆?
因为我以前一直使用BDE通过ODBC连接的,所以那时只要在客户端把ODBC设置正确就可以使用了,可现在改为ADO后,不知如何动态设置去适应了?
因为我以前一直使用BDE通过ODBC连接的,所以那时只要在客户端把ODBC设置正确就可以使用了,可现在改为ADO后,不知如何动态设置去适应了?
调试欢乐多
adoconnection.open;
,写到外面的文件里(加密)或者动态生成,怎么说c/s的程序都不安全,有机会改b/s把
将来发行和升级都容易
---------------
爱如火,紫如情!
---------------
begin
IniFile := TIniFile.Create(GetIniFilePath);
ser_ip:=IniFile.ReadString('sever_ip', 'sever', '');
user_name:=inifile.readstring('user_name','default_name','');
user_pw:=inifile.readstring('user_pw','default_pw','');
dbname:=inifile.readstring('dbname','database','');
IniFile.Free;
ADOConnection1.ConnectionString :=
'Provider=SQLOLEDB.1;Persist Security Info=false'
+ ';User ID=' + user_name
+ ';Initial Catalog=' + DBName
+ ';Data Source='+ser_ip
+ ';Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096'
+ ';Workstation ID='+localip
+ ';Use Encryption for Data=False'
+ ';Tag with column collation when possible=False';
end;function Tdatamodule2.GetIniFilePath: string;
begin
FRootPath := ExtractFilePath(Application.ExeName);
Result := FRootPath + GIniFileName;
end;
然后形成connectionstring
现在又来个问题,就是你的方法都是考虑非WINDOWS集成登陆的情况,因为我发现如果SQL 2000使用的WINDOWS集成登陆时,那些用户名和密码都无法使用,这如何解决,而
他的连接字符串替换为了
INTEGRATED SRECTUTE !1