Bagikan melalui


Fungsi SQLCompleteAsync

Kesesuaian
Versi Diperkenalkan: Kepatuhan Standar ODBC 3.8: Tidak Ada

Ringkasan
SQLCompleteAsync dapat digunakan untuk menentukan kapan fungsi asinkron selesai menggunakan pemrosesan berbasis pemberitahuan atau polling. Untuk informasi selengkapnya tentang operasi asinkron, lihat Eksekusi Asinkron.

SQLCompleteAsync hanya diimplementasikan di Odbc Driver Manager.

Dalam mode pemrosesan asinkron berbasis pemberitahuan, SQLCompleteAsync harus dipanggil setelah Driver Manager menaikkan objek peristiwa yang digunakan untuk pemberitahuan. SQLCompleteAsync menyelesaikan pemrosesan asinkron dan fungsi asinkron akan menghasilkan kode pengembalian.

Dalam mode pemrosesan asinkron berbasis polling, SQLCompleteAsync adalah alternatif untuk memanggil fungsi asinkron asli, tanpa perlu menentukan argumen dalam panggilan fungsi asinkron asli. SQLCompleteAsync dapat digunakan terlepas dari apakah Pustaka Kursor ODBC diaktifkan.

Sintaks

  
SQLRETURN SQLCompleteAsync(  
      SQLSMALLINT HandleType,  
      SQLHANDLE   Handle,  
      RETCODE *   AsyncRetCodePtr);  

Argumen

HandleType
[Input] Jenis handel untuk menyelesaikan pemrosesan asinkron. Nilai yang valid adalah SQL_HANDLE_DBC atau SQL_HANDLE_STMT.

Menangani
[Input] Handel untuk menyelesaikan pemrosesan asinkron. Jika Handle bukan handel yang valid dari jenis yang ditentukan oleh HandleType, SQLCompleteAsync mengembalikan SQL_INVALID_HANDLE.

Jika Handle bukan handel yang valid dari jenis yang ditentukan oleh HandleType, SQLCompleteAsync mengembalikan SQL_INVALID_HANDLE.

AsyncRetCodePtr
[Output] Pointer ke buffer yang akan berisi kode pengembalian API asinkron. Jika AsyncRetCodePtr adalah NULL, SQLCompleteAsync mengembalikan SQL_ERROR.

Kembali

SQL_SUCCESS, SQL_ERROR, SQL_NO_DATA, atau SQL_INVALID_HANDLE.

Diagnostik

Jika SQLCompleteAsync mengembalikan SQL_SUCCESS, aplikasi harus mendapatkan kode pengembalian fungsi asinkron dari buffer yang ditujukkan oleh AsyncRetCodePtr. SQLSTATE terkait, jika ada, dapat diperoleh dengan memanggil SQLGetDiagRec dengan HandleType SQL_HANDLE_STMT dan handel pernyataan atau HandleType SQL_HANDLE_DBC dan handel koneksi. Catatan diagnostik tersebut dikaitkan dengan fungsi asinkron, bukan fungsi SQLCompleteAsync ini.

SQLCompleteAsync mengembalikan kode selain SQL_SUCCESS untuk menunjukkan bahwa SQLCompleteAsync tidak dipanggil dengan benar. SQLCompleteAsync tidak akan memposting catatan diagnostik apa pun dalam kasus ini. Kemungkinan kode pengembalian adalah:

  • SQL_INVALID_HANDLE: Handel yang ditunjukkan oleh HandleType dan Handle bukan handel yang valid.

  • SQL_ERROR: AsyncRetCodePtr adalah NULL atau pemrosesan asinkron tidak diaktifkan pada handel.

  • SQL_NO_DATA: Dalam mode pemberitahuan, operasi asinkron tidak sedang berlangsung atau Manajer Driver belum memberi tahu aplikasi. Dalam mode polling, operasi asinkron tidak sedang berlangsung.

Komentar

Dalam mode pemrosesan asinkron berbasis polling, AsyncRetCodePtr mungkin SQL_STILL_EXECUTING ketika SQLCompleteAsync mengembalikan SQL_SUCCESS. Aplikasi harus terus melakukan polling hingga AsyncRetCodePtr tidak SQL_STILL_EXECUTING. Dalam mode pemrosesan asinkron berbasis pemberitahuan, AsyncRetCodePtr tidak akan pernah SQL_STILL_EXECUTING.

Lihat Juga

Eksekusi Asinkron (Metode Polling)