我在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}驱动程序
答案 0 :(得分:1)
使用以下连接字符串,您可以使用C#中的Sybase并指定初始目录。
Data Source=\\myserver\myvolume\mypat;Initial Catalog=mydd.add;User ID=myUsername;Password=myPassword;ServerType=REMOTE;
无论如何,您的连接字符串也具有初始目录属性。
答案 1 :(得分:0)
你可能在这里误解了一些基本的东西。与Sybase或MS的本机连接不同,ODBC连接处理数据源定义中标识的一个且仅一个db_name。 ODBC无法理解或具有更改db上下文的能力。因此,请为需要连接的每个db_name创建一个新的数据源定义。
Sybase还允许每次登录设置默认db_name
。您可以更改它,以便从该登录的任何连接直接转到特定的数据库。
Sybase肯定允许切换数据库上下文, 后连接。您可以:
USE db_name
GO
不要忘记"GO"
。 “USE db_name
”必须是批次中唯一的命令。
如果您不是DBA,并且他们(作为开发人员)将您(作为开发人员)放在db_name中,以便进行包含,并且您无法更改它,那么使用完全限定的表名“db_name.user.table_name
”是正确的方法。每个组件都有一个默认值(db_name
是当前数据库; user
是dbo
)。根据ISO / IEC / ANSI SQL标准,它不是一种解决方法,它是必需的方法。