首页 热点资讯 义务教育 高等教育 出国留学 考研考公

PB可否查看系统正连接哪个数据库?

发布网友 发布时间:2022-04-23 07:40

我来回答

2个回答

热心网友 时间:2022-06-17 20:22

以下两个方法以供参考:
1,读取ODBC的配置,ODBC的配置是存放在注册表中的,在程序里可以读取该键值可能能够获取ODBC连接到了哪个数据库。
比如,
用户DSN在
HKEY_CURRENT_USER\Software\ODBC\ODBC.INI
系统DSN在
HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI

这个方法的好处是即便没有连接DB也能进行判断。缺点是如果运行程序的用户没有读取注册表权限则不能实现,且不同的数据库连接引擎,ODBC里的键值是不同的,有些甚至不能在ODBC的键值里直接得到数据库名,比如ORACLE,你得到的可能是服务名,这个服务名对应哪个DB,还需要在tnsnames.ora中才能确定。这也是前面我说“可能能够获取”的原因。

2,通过读取数据库系统表或视图或过程或函数的方法得到。语法因DBMS不同而异。
比如,
MS SQLSERVER 2005,可以这样写:
select db_name(dbid) from sys.sysprocesses where spid = @@spid
Sybase ASE 12,可以这样写:
select db_name(dbid) from master..sysprocesses where spid = @@spid
等等
这个方法的好处是不访问注册表也能判断。缺点是需要连接DB后且具备相应读取权限才能实现。

使用哪种方式,要看你自己实际情况中哪种更方便。

热心网友 时间:2022-06-17 20:22

别用ODBC建立数据库的连接,效率很低的,使用JDBC吧。这样用你的网络登录ID的windows NT验证就可以了。如果不会请参考这里的连接方法,这有使用JDBC建立和数据库连接的方法。

参考资料:http://hi.baidu.com/ak461230/blog/item/ec296efbe180bbd5b58f3179.html

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com