如何在.NET中的ODBC中指定SYBASE数据库名称

时间:2010-12-22 07:22:43

标签: .net odbc sybase

我在C#中使用Sybase ODBC驱动程序。 运行良好,但我找不到指定数据库的方法。

作为解决方法,我正在使用此双点通知

 SELECT * FROM DB_NAME..TABLE_NAME

但是我想知道是否有一种方法可以在连接字符串中指定DB(在MS SQL中 - 在初始目录中)

下面是我用来创建连接字符串的代码:

string connString = string.Format ( "Driver={{{0}}};srvr={1};uid={2};pwd={3};Initial Catalog={4};",
 GetConfigEntry ( "SYBASE_DRIVER" ),
 GetConfigEntry ( "SERVER" ), 
 GetConfigEntry ( "LOGIN" ),
 GetConfigEntry ( "PSWD" ),
 GetConfigEntry ( "DB" )
);

修改 我正在使用{MERANT 3.60 32-BIT Sybase}驱动程序

2 个答案:

答案 0 :(得分:1)

使用以下连接字符串,您可以使用C#中的Sybase并指定初始目录。

Data Source=\\myserver\myvolume\mypat;Initial Catalog=mydd.add;User    ID=myUsername;Password=myPassword;ServerType=REMOTE;

无论如何,您的连接字符串也具有初始目录属性。

答案 1 :(得分:0)

  1. 你可能在这里误解了一些基本的东西。与Sybase或MS的本机连接不同,ODBC连接处理数据源定义中标识的一个且仅一个db_name。 ODBC无法理解或具有更改db上下文的能力。因此,请为需要连接的每个db_name创建一个新的数据源定义。

    • 请注意,每个ODBC驱动程序(供应商)都有自己的特点
    • 使用本机连接(CT-Library)比ODBC快得多,并且没有这些限制。
  2. Sybase还允许每次登录设置默认db_name。您可以更改它,以便从该登录的任何连接直接转到特定的数据库。

  3. Sybase肯定允许切换数据库上下文, 后连接。您可以:

    USE db_name
    GO
    不要忘记"GO"。 “USE db_name”必须是批次中唯一的命令。

  4. 如果您不是DBA,并且他们(作为开发人员)将您(作为开发人员)放在db_name中,以便进行包含,并且您无法更改它,那么使用完全限定的表名“db_name.user.table_name”是正确的方法。每个组件都有一个默认值(db_name是当前数据库; userdbo)。根据ISO / IEC / ANSI SQL标准,它不是一种解决方法,它是必需的方法。