Multithreading

Pada sistem operasi multithread, driver harus aman utas. Artinya, aplikasi harus dapat menggunakan handel yang sama pada lebih dari satu utas. Bagaimana hal ini dicapai khusus driver, dan kemungkinan driver akan membuat serialisasi setiap upaya untuk secara bersamaan menggunakan handel yang sama pada dua utas yang berbeda.

Aplikasi biasanya menggunakan beberapa utas alih-alih pemrosesan asinkron. Aplikasi ini membuat utas terpisah, memanggil fungsi ODBC di atasnya, dan kemudian melanjutkan pemrosesan pada utas utama. Daripada harus terus melakukan polling fungsi asinkron, seperti halnya ketika atribut pernyataan SQL_ATTR_ASYNC_ENABLE digunakan, aplikasi hanya dapat membiarkan utas yang baru dibuat selesai.

Fungsi yang menerima handel pernyataan dan berjalan pada satu utas dapat dibatalkan dengan memanggil SQLCancel dengan handel pernyataan yang sama dari utas lain. Meskipun driver tidak boleh menserialisasikan penggunaan SQLCancel dengan cara ini, tidak ada jaminan bahwa memanggil SQLCancel akan benar-benar membatalkan fungsi yang berjalan pada utas lain.