如何在.NET中指定ODBC中的SYBASE数据库名称
问题描述:
我在C#中使用Sybase ODBC驱动程序。 工作正常,但我找不到指定数据库操作的方式。如何在.NET中指定ODBC中的SYBASE数据库名称
至于解决方法,我用这双点通知
SELECT * FROM DB_NAME..TABLE_NAME
但我不知道是否有在连接字符串指定数据库的方式(如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位Sybase}驱动程序
答
使用以下连接字符串,可以使用C#中的Sybase并指定初始目录。
Data Source=\\myserver\myvolume\mypat;Initial Catalog=mydd.add;User ID=myUsername;Password=myPassword;ServerType=REMOTE;
无论如何,你的连接字符串也有初始目录属性。
答
-
您可能会误解这里的一些根本。与到Sybase或MS的本地连接不同,ODBC连接处理数据源定义中标识的一个且仅有的一个db_name。 ODBC不理解或有能力更改数据库上下文。因此,为每个需要连接的db_name创建一个新的数据源定义。
- 注意,每个ODBC驱动程序(供应商)有其特殊性
- 使用本地连接(CT库)是多少,比ODBC更快,而且没有如这些限制。
。
Sybase还允许在每次登录时设置默认
db_name
。你可以改变它,以便来自该登录的任何连接都直接进入特定的数据库。-
Sybase肯定允许在连接之后切换db上下文,。您可以:
Do not forget theUSE db_name GO
"GO"
。 “USE db_name
”必须是该批次中唯一的命令。 如果您不是DBA,并且他们已将您(作为开发人员)置于db_name中,但出于遏制的目的,并且无法更改该属性,则使用完全限定的表名称“
db_name.user.table_name
”是正确的方法。每个组件都有一个默认值(db_name
是当前分区;user
是dbo
)。这不是一种解决方法,按照ISO/IEC/ANSI SQL标准,它是必需的方法。
你也可以用作第一个命令USE –
2010-12-22 07:28:06
我试过了:USE DB; SELECT ...并说近处有未知命令; – Maciej 2010-12-22 13:01:10