標準連接流程
int connectDb() {
EXEC SQL BEGIN DECLARE SECTION;
char username[20];
char password[20];
char connect_string[20];
EXEC SQL END DECLARE SECTION;
strcpy(username, "lbc1");
strcpy(password, "lbtux");
strcpy(connect_string, "lbc1"); /* TNS 別名或 EZCONNECT 字符串 */
EXEC SQL CONNECT :username IDENTIFIED BY :password USING :connect_string;
if (sqlca.sqlcode < 0) {
return -1; /* 連接失敗 */
}
return 0;
}
關鍵點說明
- DECLARE SECTION:宿主變量必須在該區塊聲明,預編譯器才能識別。
- sqlca.sqlcode:SQLCA 通訊區,
0 成功,<0 錯誤,>0 警告(如截斷)。
- 連接字符串:可為
tnsnames.ora 別名、EZCONNECT 格式 host:port/service 或完整描述符。
- 錯誤處理:生產代碼建議檢查
sqlca.sqlerrm.sqlerrmc 獲取詳細錯誤信息並記錄日志。
常見擴展
- 使用
ALTER AUTHORIZATION 切換用戶
- 啟用
EXEC SQL ENABLE THREADS 支援多線程
- 配合
ORACA 進行詳細運行時診斷