延遲的緩衝區
延後緩衝區的值會在函式呼叫中指定「之後」,相隔一段時間才使用。 例如, SQLBindParameter 可用來關聯或 系結 數據緩衝區與 SQL 語句中的參數。 應用程式會指定參數的數目,並傳遞緩衝區的位址、位元組長度和類型。 驅動程式會儲存這項資訊,但不會檢查緩衝區的內容。 稍後,應用程式執行陳述式時,驅動程式會擷取資訊,並使用資訊來擷取參數資料,並傳送至資料來源。 因此,緩衝區中的資料輸入會延遲。 因為延後緩衝區是在某個函式中指定,並用於另一個函式中,若釋放延後緩衝區,因為驅動程式仍會預期該緩衝區存在,因此這是一種應用程式的程式設計錯誤。如需詳細資訊,請參閱本節稍後所討論的配置及釋放緩衝區 (機器翻譯)。
輸入和輸出緩衝區都可以延遲。 下表摘要說明延遲緩衝區的使用方式。 請注意,繫結至結果集資料行的延後緩衝區是使用 SQLBindCol 來指定,而繫結至 SQL 陳述式參數的延遲緩衝區則會使用 SQLBindParameter 來指定。
緩衝區使用方式 | 類型 | 指定方式 | 使用對象 |
---|---|---|---|
傳送輸入參數的資料 | 延後輸入 | SQLBindParameter | SQLExecute SQLExecDirect |
傳送資料,以更新或插入結果集中的資料列 | 延後輸入 | SQLBindCol | SQLSetPos |
傳回輸出和輸入/輸出參數的資料 | 延後輸出 | SQLBindParameter | SQLExecute SQLExecDirect |
傳回結果集資料 | 延後輸出 | SQLBindCol | SQLFetch SQLFetchScroll SQLSetPos |