多線程

在多執行緒作業系統上,驅動程式必須是執行緒安全的。 也就是說,應用程式必須能夠在多個執行緒中使用相同的句柄。 如何實現此事取決於驅動程式,且驅動程式很可能會將嘗試同時使用相同句柄於兩個不同執行緒時序列化。

應用程式通常使用多執行緒而非同步處理。 應用程式建立獨立執行緒,呼叫 ODBC 函式,然後繼續在主執行緒上處理。 與使用SQL_ATTR_ASYNC_ENABLE語句屬性時必須不斷輪詢非同步函式不同,應用程式只需讓新建立的執行緒完成即可。

接受語句句柄且在一個執行緒上執行的函式,可以透過呼叫另一個線程中帶有相同語句句柄的 SQLCancel 來取消。 雖然驅動程式不應以這種方式序列化 SQLCancel 的使用,但無法保證呼叫 SQLCancel 會真正取消在另一個執行緒執行的函式。