Bagikan melalui


ISSAsynchStatus::WaitForAsynchCompletion di SQL Server Native Client (OLE DB)

Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Penting

SQL Server Native Client (sering disingkat SNAC) telah dihapus dari SQL Server 2022 (16.x) dan SQL Server Management Studio 19 (SSMS). Penyedia SQL Server Native Client OLE DB (SQLNCLI atau SQLNCLI11) dan Penyedia Microsoft OLE DB warisan untuk SQL Server (SQLOLEDB) tidak direkomendasikan untuk pengembangan baru. Beralih ke Microsoft OLE DB Driver (MSOLEDBSQL) baru untuk SQL Server ke depannya.

Menunggu hingga operasi eksekusi asinkron selesai atau sampai waktu habis terjadi.

Sintaks

  
HRESULT WaitForAsynchCompletion(   
        DWORD dwMillisecTimeOut);  

Argumen

dwMillisecTimeOut[in]
Waktu habis dalam milidetik.

Mengembalikan Nilai Kode

S_OK
Metode berhasil.

E_UNEXPECTED
Set baris dalam status tidak digunakan karena ITransaction::Commit atau ITransaction::Abort telah dipanggil atau set baris dibatalkan selama fase inisialisasinya.

DB_E_CANCELED
Pemrosesan asinkron dibatalkan selama populasi kumpulan baris atau inisialisasi objek sumber data.

DB_S_ASYNCHRONOUS
Operasi belum selesai meskipun waktu habis yang ditentukan telah tercapai.

Catatan

Selain nilai kode pengembalian yang tercantum di atas, metode ISSAsynchStatus::WaitForAsynchCompletion juga mendukung nilai kode pengembalian yang dikembalikan oleh metode core OLEDB ICommand::Execute dan IDBInitialize::Initialize .

Keterangan

Metode ISSAsynchStatus::WaitForAsynchCompletion tidak akan kembali sampai nilai waktu habis (dalam milidetik) telah berlalu atau operasi tertunda dilakukan. Objek Perintah memiliki properti CommandTimeout yang mengontrol jumlah detik yang akan dijalankan kueri sebelum waktu habis. Properti CommandTimeout akan diabaikan jika digunakan bersama dengan metode ISSAsynchStatus::WaitForAsynchCompletion .

Properti waktu habis diabaikan untuk operasi asinkron. Parameter waktu habis ISSAsynchStatus::WaitForAsynchCompletion menentukan jumlah waktu maksimum yang akan berlalu sebelum kontrol dikembalikan ke pemanggil. Jika waktu habis ini kedaluwarsa, DB_S_ASYNCHRONOUS akan dikembalikan. Waktu habis tidak pernah membatalkan operasi asinkron. Jika aplikasi perlu membatalkan operasi asinkron yang tidak selesai dalam periode waktu habis, aplikasi harus menunggu waktu habis dan kemudian secara eksplisit membatalkan operasi jika DB_S_ASYNCHRONOUS dikembalikan.

Catatan

Ketika Komponen Layanan OLE DB digunakan, S_OK dapat dikembalikan ketika DB_S_ASYNCHRONOUS diharapkan, sehingga aplikasi harus memanggil ISSAsynchStatus::GetStatus untuk memeriksa penyelesaian saat S_OK atau DB_S_ASYNCHRONOUS dikembalikan.

Jika nilai dwMillisecTimeOut diatur ke INFINITE, metode ISSAsynchStatus::WaitForAsynchCompletion memblokir hingga operasi selesai. Jika nilai dwMillisecTimeOut diatur ke 0, maka metode akan segera kembali dengan status operasi yang tertunda. Jika waktu habis sebelum operasi selesai DB_S_ASYNCHRONOUS akan dikembalikan.

Jika operasi selesai sebelum waktu habis berakhir, HRESULT yang dikembalikan akan menjadi HRESULT yang dikembalikan oleh operasi (HRESULT yang akan dikembalikan jika operasi dilakukan secara sinkron).

Selain itu, properti SSPROP_ISSAsynchStatus telah ditambahkan ke kumpulan properti DBPROPSET_SQLSERVERROWSET. Penyedia yang mendukung antarmuka ISSAsynchStatus harus mengimplementasikan properti ini dengan nilai VARIANT_TRUE.

Lihat Juga

Melakukan Operasi Asinkron
ISSAsynchStatus (OLE DB)