延遲的緩衝區

延後緩衝區的值會在函式呼叫中指定「之後」,相隔一段時間才使用。 例如,SQLBindParameter 可用來關聯或繫結資料緩衝區與 SQL 陳述式中的參數。 應用程式會指定參數的數目,並傳遞緩衝區的位址、位元組長度和類型。 驅動程式會儲存這項資訊,但不會檢查緩衝區的內容。 稍後,應用程式執行陳述式時,驅動程式會擷取資訊,並使用資訊來擷取參數資料,並傳送至資料來源。 因此,緩衝區中的資料輸入會延遲。 因為延後緩衝區是在某個函式中指定,並用於另一個函式中,若釋放延後緩衝區,因為驅動程式仍會預期該緩衝區存在,因此這是一種應用程式的程式設計錯誤。如需詳細資訊,請參閱本節稍後所討論的配置及釋放緩衝區 (機器翻譯)。

輸入和輸出緩衝區都可以延遲。 下表摘要說明延遲緩衝區的使用方式。 請注意,繫結至結果集資料行的延後緩衝區是使用 SQLBindCol 來指定,而繫結至 SQL 陳述式參數的延遲緩衝區則會使用 SQLBindParameter 來指定。

緩衝區使用方式 類型 指定方式 使用對象
傳送輸入參數的資料 延後輸入 SQLBindParameter SQLExecute
SQLExecDirect
傳送資料,以更新或插入結果集中的資料列 延後輸入 SQLBindCol SQLSetPos
傳回輸出和輸入/輸出參數的資料 延後輸出 SQLBindParameter SQLExecute
SQLExecDirect
傳回結果集資料 延後輸出 SQLBindCol SQLFetch
SQLFetchScroll SQLSetPos