Sybase ASE (Adaptive Server Enterprise) 與 Sybase IQ (Intelligence Quotient) 是兩種不同架構的數據庫,**連接字符串與驅動程序完全不同**。
Sybase.AdoNet4.AseClient。安裝 **Sybase IQ ODBC Driver** (通常隨 IQ 客戶端安裝),配置系統 DSN 或使用無 DSN 連接字符串。
OdbcConnection)
using System.Data.Odbc;
string connStr = ConfigurationManager.ConnectionStrings["SybaseIQConn"].ConnectionString;
using (OdbcConnection conn = new OdbcConnection(connStr)) {
try {
conn.Open();
Console.WriteLine("連接成功!Server Version: " + conn.ServerVersion);
using (OdbcCommand cmd = new OdbcCommand("SELECT TOP 10 * FROM my_table", conn))
using (OdbcDataReader reader = cmd.ExecuteReader()) {
while (reader.Read()) {
Console.WriteLine(reader[0]);
}
}
} catch (OdbcException ex) {
Console.WriteLine("連接失敗: " + ex.Message);
// 檢查驅動名稱、端口、防火牆、網絡連通性
}
}
| 參數 | 說明 |
|---|---|
Driver | 系統 ODBC 管理器中安裝的驅動**確切名稱** (如 Sybase IQ、SQL Anywhere 17),區分大小寫。 |
Server / Host | 數據庫服務器 IP 或主機名。 |
Port | IQ 默認端口通常為 2638 (SQL Anywhere) 或 40000+,確認服務端配置。 |
Database / DBN | 數據庫名稱 (Database Name)。 |
UID / PWD | 用戶名/密碼。 |
CommLinks | 進階:指定網絡協議,如 tcpip{host=...;port=...},通常無需指定。 |
若安裝了 SQL Anywhere 客戶端 (包含 iAnywhere.Data.SQLAnywhere),可使用原生 Provider,性能略優於 ODBC。
// 連接字符串
"UserID=myUser;Password=myPassword;Server=MyServer;Host=192.168.1.100:2638;Database=MyDB"
// Provider
providerName="iAnywhere.Data.SQLAnywhere"
// 命名空間
using iAnywhere.Data.SQLAnywhere;
SAConnection conn = new SAConnection(connStr);
Sybase IQ Connection Parameters。