AdoDataSet.ConnectionString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=T_BaseInfo;Data Source=ICE'最后的 ICE 是我系统个人账户,在别的机子上这个程序就不能执行了,如何变为通用的连接,应该怎么写,小弟是ado的初学者,再次谢谢各位哥哥姐姐了等候佳音
调试欢乐多
把关键字,如登录用户、密码等写到注册表或一个INI文件中,程序启动的时候,取出这些关键字,组成AdoConnection的连接字符串即可
因为每个电脑上sqlserver等数据库的服务器名称、使用者、密码
等都是不一致的
所以必须要动态的修改楼上的几位都说的比较清楚了
一般的方法就是通过用文件(或者注册表)来保存连接
然后在运行的时候读取比如:
在ini文件中保存了连接的字符串
每次运行的时候去读取
如果成功、就继续
如果不成功、就弹出配置框让用户配置
然后用新的配置去连接数据库
并且把新的连接写到ini或者注册表中(覆盖以前的字符串)
在登陆框显示的时候可以这样操作
去尝试连接
-------------------
procedure TlogForm.FormCreate(Sender: TObject);
var
ConStr:wideString;
begin
AdoConnection1.Connected:=false;
//AdoConnection1.ConnectionString:=....//这里去读取字符串,自己写代码
AdoConnection1.LoginPrompt:=false;
try
AdoConnection1.Connected:=true;//尝试连接
//继续操作其他
except
ConStr:=promptDatasource(0,'');//弹出配置框,重新连接
if ConStr<>'' then
begin
AdoConnection1.ConnectionString:=ConStr;
try
AdoConnection1.Connected:=true;//再次连接
//继续操作其他
except
//退出去检查
end;
end
end;
end;
//更新ini文件
修改如下:
-------------------
procedure TlogForm.FormCreate(Sender: TObject);
var
ConStr:wideString;
begin
AdoConnection1.Connected:=false;
//AdoConnection1.ConnectionString:=....//这里去读取字符串,自己写代码
AdoConnection1.LoginPrompt:=false;
try
AdoConnection1.Connected:=true;//尝试连接
//继续操作其他
except
ConStr:=promptDatasource(0,'');//弹出配置框,重新连接
if ConStr<>'' then
begin
AdoConnection1.ConnectionString:=ConStr;
try
AdoConnection1.Connected:=true;//再次连接
//继续操作其他
//更新ini文件
except
//退出去检查
end;
end
end;
end;