首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用户DSN和系统DSN -如何选择系统?

用户DSN和系统DSN -如何选择系统?
EN

Stack Overflow用户
提问于 2009-02-13 23:17:50
回答 3查看 10.1K关注 0票数 1

场景:我们的安装包用于添加用户DSN。由于终端服务器和Citrix的原因,我们将其更改为安装系统DSN。

问题是,一些旧用户DSN到处浮动,我们的应用程序在系统和连接信息随着我们升级服务器软件而发生变化之前自动选择用户。

我想我的问题是,如果存在重复项,有没有办法强制应用程序使用系统DSN而不是用户DSN?

我们的应用程序是用SQL10.5编写的,我们使用的是PowerBuilder Anywhere 10.0.1。

谢谢,卡尔文

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-03-14 08:46:12

请参见PowerBuilder帮助中的RegistryValues()。下面的代码并不完全是您想要的,但它确实显示了一些工作调用……

代码语言:javascript
复制
integer li_RC
string  ls_odbc_ini[]

li_RC = RegistryValues ( &
   "HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources", &
    ls_odbc_ini )

IF li_RC <> 1 THEN
    MessageBox ( 'Error', &
        'RegistryValues failed in website.open' )
    RETURN
END IF

MessageBox ( 'A user DSN...', ls_odbc_ini[1] )

li_RC = RegistryValues ( &
   "HKEY_LOCAL_MACHINE\Software\ODBC\ODBC.INI\ODBC Data Sources", &
    ls_odbc_ini )

IF li_RC <> 1 THEN
    MessageBox ( 'Error', &
        'RegistryValues failed in website.open' )
    RETURN
END IF

MessageBox ( 'A system DSN...', ls_odbc_ini[1] )

另一个建议是从您想要的任何DSN读取连接信息,然后使用“无DSN”连接,以避免“选择错误的DSN”。

代码语言:javascript
复制
SQLCA.DBMS = 'ODB'

SQLCA.DBParm &
    = "ConnectString='Driver=SQL Anywhere 10;" &
    + "UID=dba;PWD=sql;DatabaseName=ruralfinds_local;EngineName=ruralfinds_local'," &
    + "ConnectOption='SQL_DRIVER_CONNECT,SQL_DRIVER_NOPROMPT'"

CONNECT USING SQLCA;

IF SQLCA.SQLCODE <> 0 THEN
    MessageBox ( 'Error', &
        'CONNECT failed in open:' &
        + '~r~nSQLCode = ' &
        + String ( SQLCA.SQLCode ) &
        + '~r~nSQLDBCode = ' &
        + String ( SQLCA.SQLDBCode ) &
        + '~r~n' &
        + SQLCA.SQLErrText )
    RETURN
END IF

Breck

票数 2
EN

Stack Overflow用户

发布于 2009-02-14 00:09:05

有关用户DSN的信息存储在注册表中。您是否考虑过简单地执行几次注册表读取,然后删除/重命名无效的DSN,或者就冲突向用户发出警告并让用户选择修复问题?

票数 3
EN

Stack Overflow用户

发布于 2009-08-12 18:57:18

由于您使用的是SQL Anywhere,因此请看一下随附的dbdsn实用程序。它将允许您列出、描述、创建和删除用户和系统DSN。例如,您可以使用它来查看用户和系统don是否同时存在,并删除不需要的don。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/548067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档