Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Informix ESQL/C 實戰:嵌入式 SQL 程式設計完整範例

編輯:Linux 教學

前言

在企業級應用開發中,Informix 資料庫以其高效能與穩定性廣受青睞。本文提供一個完整的 Informix ESQL/C 實作範例,涵蓋資料庫連線、查詢、斷線等核心操作,並包含編譯腳本與動態庫建立教學,適合需要快速上手嵌入式 SQL 開發的工程師參考。

核心程式碼結構

資料庫連線模組 (dbconn.ec)

主程式包含三個關鍵函式:

  • connectDB():透過環境變數 WORKDBS 取得資料庫名稱,建立連線
  • selectDB():執行簡單的 SELECT * FROM TEMP_TABLE WHERE column1 = 'test' 查詢
  • disconnectDB():正確斷開資料庫連線

所有函式均採用 EXEC SQL WHENEVER SQLERROR GOTO error 錯誤處理機制,確保異常時能記錄 sqlca.sqlcode 並優雅退出。

主程式 (test.c)

簡潔的呼叫流程:

int main() {
    connectDB();
    selectDB();
    disconnectDB();
    return 0;
}

建置系統詳細說明

基本 Makefile

定義 INFORMIXDIR、編譯旗標 CFLAGS 與連結庫 INFOLIBS,使用 esql 預編譯 .ec 檔案:

INFORMIXDIR = /infx64
CFLAGS = -g -w
INFOLIBS = -L$(INFORMIXDIR)/lib -lifasf \
-L$(INFORMIXDIR)/lib/esql -lifsql -lgen -lgls -lifgen -lthgen -los -ltli -lm

all: dbconn.o test.o
    cc $(CFLAGS) test.o dbconn.o -o $@ $(INFOLIBS)

dbconn.o: dbconn.ec
    esql -c dbconn.ec

AIX 平台動態庫建立

進階範例展示如何將連線函式編譯為共享庫 libconnect.so 與靜態庫 libconnect.a,包含 nm、awk 處理匯出符號表,以及 cc -bnoentry -bM:SRE 等 AIX 專屬連結選項。

關鍵技術重點

  • 環境變數驅動配置:資料庫名稱由 WORKDBS 環境變數提供,便於部署環境切換
  • SQLCA 錯誤處理:統一使用 sqlca.sqlcode 回報詳細錯誤碼
  • 跨平台編譯差異:Linux 與 AIX 的庫路徑、連結參數差異明確區分
  • 預編譯器工作流:esql -c 將 .ec 轉為 .c 再編譯,掌握此流程可避免常見建置錯誤

實務建議

實際專案中建議:

  1. 將資料庫連線參數外部化至配置檔,避免硬編碼
  2. 加入連線重試與連線池機制提升穩定性
  3. 使用 PREPARE/DECLARE CURSOR 處理複雜查詢
  4. 建立標準化的建置腳本模板,減少跨平台移植成本

完整程式碼與 Makefile 已整合於本文,可直接作為專案起始模板使用。

Copyright © Windows教程網 All Rights Reserved