具体问题是这样的:
在一个局域网内有A,B,C...等这些sql server服务器,我现在要在我的程序中实现动态切换数据源,但有一个问题,就是,比如我要访问A上的SQL SERVER
首先要登录到A机上,这样我才能访问A机上sql server,
我希望能通过程序来实现这一功能,即:
1、用户选择服务器A,
2、如果本机与服务器A没有联接上,那么弹出一个登录对话框,提示用户输入用户名和密码,如果通过验证,则进行ODBC连接。
请问第2步怎样来实现!
你可以在写注册表或ini文件然后在程序中进行判断。就可以了
ODBC的你要现在机器上建立3个数据远
名字叫 a,b,c
然后用adoquery控间的connectionstring来产生一个连接字符串
那里面肯定包括了某个数据远的名字。
当用户选择a服务器,或b,c的时候你只要改变这个连接字符串就可以拉
如果不愿意改变这个字符串的话,就可以
用
const a=字符串连接a服务器的
const b=字符串连接b服务器的
const c=字符串连接c服务器的
然后用
adoquery1.connectiontstring:= 字符串;
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add(select * form table);
adoquery1.open;
就能取出数据拉
up
adoconection.connectionstring:= Provider=SQLOLEDB.1;Password=server;Persist Security Info=True;User ID=sa;Initial Catalog=BookStore;
在程序中动态生成字串 Data Source=机器A 或 Data Source=机器B
1、在注册表中或ini文件中建立服务器名与ip地址或odbc数据源的对应关系,这样在用户选取不同的服务器时,系统就连接对应相应的ip或数据源。
2、使用try..except来拦截异常即可实现。
同意zsy_good
还不如用ado 呢?
吧datasource 存在ini文件中就可以了,也不用建什么数据源,很简单
比如 xxxx.ini
[datasoure]
server1=datasource=192.168.0.1
server2=datasource=srv1
。。。。。
用户选择那个服务器就从ini文件中读出服务器的datasource
然后将它加到adoconnection1.connectionstring上就可以了;