Posted on 2009-06-22 15:19
Prayer 閱讀(2081)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
DB2CLI
用途
SQLAllocStmt() 分配新的語(yǔ)句句柄并將其與連接句柄指定的連接相關(guān)聯(lián)。對(duì)于在任何一個(gè)時(shí)候可以分配的語(yǔ)句句柄數(shù)目沒(méi)有已定義的限制。
在調(diào)用此函數(shù)之前,必須調(diào)用 SQLConnect()。
必須在 SQLBindParam()、SQLPrepare()、SQLExecute()、SQLExecDirect() 或任何其它將語(yǔ)句句柄作為其中一個(gè)輸入自變量的函數(shù)之前調(diào)用此函數(shù)。
語(yǔ)法
SQLRETURN SQLAllocStmt (SQLHDBC hdbc,
SQLHSTMT *phstmt);
函數(shù)自變量
表 12. SQLAllocStmt 自變量
數(shù)據(jù)類型 |
自變量 |
使用 |
描述 |
SQLHDBC |
hdbc |
輸入 |
連接句柄 |
SQLHSTMT * |
phstmt |
輸出 |
指向語(yǔ)句句柄的指針 |
用法
DB2 UDB CLI 使用每個(gè)語(yǔ)句句柄來(lái)使所有描述符、結(jié)果值、游標(biāo)信息和狀態(tài)信息與已處理的 SQL 語(yǔ)句相關(guān)聯(lián)。雖然每個(gè) SQL 語(yǔ)句都必須要有語(yǔ)句句柄,但可以將句柄重新用于不同的語(yǔ)句。
對(duì)此函數(shù)的調(diào)用要求 hdbc 引用活動(dòng)的數(shù)據(jù)庫(kù)連接。
要執(zhí)行定位型更新或刪除,應(yīng)用程序必須將不同的語(yǔ)句句柄用于 SELECT 語(yǔ)句和 UPDATE 或 DELETE 語(yǔ)句。
如果指向語(yǔ)句句柄的輸入指針(phstmt)指向由先前的 SQLAllocStmt() 調(diào)用分配的有效語(yǔ)句句柄,則此調(diào)用的結(jié)果是覆蓋原始值。這是應(yīng)用程序編程錯(cuò)誤,DB2 UDB CLI 不檢測(cè)此錯(cuò)誤。
返回碼
- SQL_SUCCESS
- SQL_ERROR
- SQL_INVALID_HANDLE
如果返回 SQL_ERROR,則 phstmt 自變量設(shè)置為 SQL_NULL_HSTMT。應(yīng)用程序應(yīng)使用同一個(gè) hdbc 來(lái)調(diào)用 SQLError() 并將 hstmt 自變量設(shè)置為 SQL_NULL_HSTMT。
診斷
表 13. SQLAllocStmt SQLSTATE
SQLSTATE |
描述 |
說(shuō)明 |
08003 |
連接未打開(kāi) |
hdbc 自變量指定的連接尚未打開(kāi)。必須成功地為驅(qū)動(dòng)程序建立連接(并且該連接必須已打開(kāi))才能分配 hstmt。 |
40003 * |
未知語(yǔ)句是否完成 |
在函數(shù)完成處理之前,CLI 與數(shù)據(jù)源之間的通信鏈路發(fā)生故障。 |
58004 |
系統(tǒng)錯(cuò)誤 |
不可恢復(fù)的系統(tǒng)錯(cuò)誤。 |
HY001 |
內(nèi)存分配失敗 |
驅(qū)動(dòng)程序無(wú)法分配支持此函數(shù)的執(zhí)行或完成所必需的內(nèi)存。 |
HY009 |
自變量值無(wú)效 |
phstmt 是空指針 |
HY013 * |
內(nèi)存管理問(wèn)題 |
驅(qū)動(dòng)程序無(wú)法訪問(wèn)支持此函數(shù)的執(zhí)行或完成所必需的內(nèi)存。 |
示例
請(qǐng)參考 SQLFetch()(示例)。