查詢、更新、插入、刪除、存儲過程——業務邏輯離不開數據庫交互。
C 程序直接與 DB 交互:優點即時,缺點慢查詢阻塞線程。
GetDBConn 重試 2-3 次,失敗返回錯誤。ExecuteSql(hDbConn, szSQL),失敗關閉連接返回。Fetch(hDbConn, buf, size),僅 SELECT 類需要,失敗關閉連接。CloseDb(hDbConn); hDbConn=NULL; 任何退出路徑必執行。... // 獲取連接含重試
iRet = ExecuteSql(hDbConn, szSQL, ...);
if (iRet == -1) { if (hDbConn) CloseDb(hDbConn), hDbConn=NULL; return; }
iRet = Fetch(hDbConn, szDBBuf, sizeof(szDBBuf));
if (iRet == -1) { if (hDbConn) CloseDb(hDbConn), hDbConn=NULL; return; }
... // 後續業務
if (hDbConn) CloseDb(hDbConn), hDbConn=NULL;
return;