ISSAsynchStatus::WaitForAsynchCompletion (OLE DB)
Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
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.