ADOConnection如何动态连接SQL2000数据库? 说明一下,就是要在不修改ADOConnection控件的情况下,把程序拿到未知电脑上就可以运行。(一般情况下不是要先修改ADOConnection的连接吗, 我想改用动态的。)希望说的通俗易懂点,我是初学者,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SQL := 'Provider=SQLOLEDB.1;Password=%s;Persist Security Info=True;User ID=%s;Initial Catalog=%s;Data Source=%s'; SQL := format(SQL,[DM.dbPwd,'sa',数据库存名,服务器名/IP]); try if DM.ConnRemote.Connected then DM.ConnRemote.Connected := false; DM.ConnRemote.ConnectionString := SQL; DM.ConnRemote.LoginPrompt := false; DM.ConnRemote.Connected := True; Except Raise; end; 最简单的方法, 你配置好了 ADOConnction 之后,把ConnectionString 拷贝下来,看看就明白了.运行的时候动态的对这些参数配置一下 就可以了 ConnectionString 写到ini或者txt配制文件里,每次连时读一下 ConnectionString字符串把需要动态配置的项放配置文件 到时候读取拼接就行了 其实很简单,你只需要动态设定ConnectionString 属性即可,可以保存到一个ini文件中,修改数据源,用户密码等信息即可具体办法参考1楼的既可以 如果要灵活,可以用udl,你新建一个文本文件,改后缀名为udl,然后就明白了在ADO中,连接这个udl就行! SQL := 'Provider=SQLOLEDB.1;Password=%s;Persist Security Info=True;User ID=%s;Initial Catalog=%s;Data Source=%s'; SQL := format(SQL,[DM.dbPwd,'sa',数据库存名,服务器名/IP]); try if DM.ConnRemote.Connected then DM.ConnRemote.Connected := false; DM.ConnRemote.ConnectionString := SQL; DM.ConnRemote.LoginPrompt := false; DM.ConnRemote.Connected := True; Except Raise; end; 我用是注册表,把adoConnection的连接参数写到注册表里,然后动态改变注册表的设置,就可以动态改变连接属性。 保存到 ini文件, 注册表, UDL 文件里都可以。 推荐UDL文件 最终用户可以直接使用UDL进行修改 和连接测试 方便的很! 我也试过INI文件 可是好像还需要在哪连接这个文件吗?? 我每次启动的时候就是不行的[dbParam]Data Source=net12Initial Catalog=W1_kwxiang_18User ID=saPassword=我里面是这么写的 不知道对不对。 SQL := 'Provider=SQLOLEDB.1;Password=%s;Persist Security Info=True;User ID=%s;Initial Catalog=%s;Data Source=%s'; SQL := format(SQL,[DM.dbPwd,'sa',数据库存名,服务器名/IP]); try if DM.ConnRemote.Connected then DM.ConnRemote.Connected := false; DM.ConnRemote.ConnectionString := SQL; DM.ConnRemote.LoginPrompt := false; DM.ConnRemote.Connected := True; Except Raise; end; 请问这个语句要放在哪里??? 将连接所需的用户名、密码、服务器、数据库名、提供者等存入ini文件中 放在主窗体的formcreate中~~ INI文件:[system]serverIP=192.168.0.1user=sapasswd=sadbname=testdbprocedure TForm1.Button1Click(Sender: TObject);var password,username,dbname,servername: String; FServerIPIni:TIniFile;begin try FServerIPIni:=TIniFile.Create(ExtractFilePath(Application.exename)+'sysconfig.ini'); servername := FServerIPIni.ReadString('system','serverIP','127.0.0.1'); username := FServerIPIni.ReadString('system','user','sa'); password := FServerIPIni.ReadString('system','passwd','sa'); dbname := FServerIPIni.ReadString('system','testdb','testdb'); try ADOConnection1.Connected := false; ADOConnection1.ConnectionString :='Provider=SQLOLEDB.1;Password='+password+';Persist Security Info=True;User ID='+username+';Initial Catalog='+dbname+';Data Source='+servername+';Connect Timeout=30'; ADOConnection1.LoginPrompt :=false; ADOConnection1.connected:=True; except messagedlg('数据库联接出错,程序退出.',mtInformation,[mbOk],0); application.terminate; end; finally FServerIPIni.Free; end;end; 召唤斑竹 bdmh SQL学习书籍汇总-1 Delphi 利用摄像头开发互动之类的程序?可以吗? 请教大家,动态创建的窗口怎么最大化 DLL调用退出时的错误! 转让企业MRPII含源代码...... 一个关于PARENT属性的问题. 有没有把数字显示成液晶字体的控件?请给出下载地址,谢谢! 操作员权限的问题 怎样在MEMO中读出光标的坐标(x,y)呢? delphi活该完蛋 delphi webservice 调用报错 急
SQL := 'Provider=SQLOLEDB.1;Password=%s;Persist Security Info=True;User ID=%s;Initial Catalog=%s;Data Source=%s';
SQL := format(SQL,[DM.dbPwd,'sa',数据库存名,服务器名/IP]);
try
if DM.ConnRemote.Connected then DM.ConnRemote.Connected := false;
DM.ConnRemote.ConnectionString := SQL;
DM.ConnRemote.LoginPrompt := false;
DM.ConnRemote.Connected := True;
Except
Raise;
end;
看看就明白了.
运行的时候动态的对这些参数配置一下 就可以了
具体办法参考1楼的既可以
在ADO中,连接这个udl就行!
SQL := format(SQL,[DM.dbPwd,'sa',数据库存名,服务器名/IP]);
try
if DM.ConnRemote.Connected then DM.ConnRemote.Connected := false;
DM.ConnRemote.ConnectionString := SQL;
DM.ConnRemote.LoginPrompt := false;
DM.ConnRemote.Connected := True;
Except
Raise;
end;
[dbParam]
Data Source=net12
Initial Catalog=W1_kwxiang_18
User ID=sa
Password=我里面是这么写的 不知道对不对。
SQL := format(SQL,[DM.dbPwd,'sa',数据库存名,服务器名/IP]);
try
if DM.ConnRemote.Connected then DM.ConnRemote.Connected := false;
DM.ConnRemote.ConnectionString := SQL;
DM.ConnRemote.LoginPrompt := false;
DM.ConnRemote.Connected := True;
Except
Raise;
end;
请问这个语句要放在哪里???
放在主窗体的formcreate中~~
[system]
serverIP=192.168.0.1
user=sa
passwd=sa
dbname=testdbprocedure TForm1.Button1Click(Sender: TObject);
var
password,username,dbname,servername: String;
FServerIPIni:TIniFile;
begin
try
FServerIPIni:=TIniFile.Create(ExtractFilePath(Application.exename)+'sysconfig.ini');
servername := FServerIPIni.ReadString('system','serverIP','127.0.0.1');
username := FServerIPIni.ReadString('system','user','sa');
password := FServerIPIni.ReadString('system','passwd','sa');
dbname := FServerIPIni.ReadString('system','testdb','testdb');
try
ADOConnection1.Connected := false;
ADOConnection1.ConnectionString :='Provider=SQLOLEDB.1;Password='+password+';Persist Security Info=True;User ID='+username+';Initial Catalog='+dbname+';Data Source='+servername+';Connect Timeout=30';
ADOConnection1.LoginPrompt :=false;
ADOConnection1.connected:=True;
except
messagedlg('数据库联接出错,程序退出.',mtInformation,[mbOk],0);
application.terminate;
end;
finally
FServerIPIni.Free;
end;
end;