2010-12-22 52 views
0

我在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}驅動程序

+0

你也可以用作第一個命令USE 2010-12-22 07:28:06

+0

我試過了:USE DB; SELECT ...並說近處有未知命令; – Maciej 2010-12-22 13:01:10

回答

1

使用以下連接字符串,可以使用C#中的Sybase並指定初始目錄。

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

無論如何,你的連接字符串也有初始目錄屬性。

0
  1. 您可能會誤解這裏的一些根本。與到Sybase或MS的本地連接不同,ODBC連接處理數據源定義中標識的一個且僅有的一個db_name。 ODBC不理解或有能力更改數據庫上下文。因此,爲每個需要連接的db_name創建一個新的數據源定義。

    • 注意,每個ODBC驅動程序(供應商)有其特殊性
    • 使用本地連接(CT庫)是多少,比ODBC更快,而且沒有如這些限制。
  2. Sybase還允許在每次登錄時設置默認db_name。你可以改變它,以便來自該登錄的任何連接都直接進入特定的數據庫。

  3. Sybase肯定允許在連接之後切換db上下文,。您可以:

    USE db_name GO
    Do not forget the "GO"。 「USE db_name」必須是該批次中唯一的命令。

  4. 如果您不是DBA,並且他們已將您(作爲開發人員)置於db_name中,但出於遏制的目的,並且無法更改該屬性,則使用完全限定的表名稱「db_name.user.table_name」是正確的方法。每個組件都有一個默認值(db_name是當前分區; userdbo)。這不是一種解決方法,按照ISO/IEC/ANSI SQL標準,它是必需的方法。

相關問題