Classi e thread ODBC
A partire da MFC 4.2, è disponibile il supporto per il multithreading per le classi ODBC MFC. Si noti, tuttavia, che MFC non fornisce supporto multithreading per le classi DAO.
Il supporto del multithreading per le classi ODBC presenta alcune limitazioni. Poiché queste classi eseguono il wrapping dell'API ODBC, sono limitate al supporto multithreading dei componenti in cui vengono compilati. Ad esempio, molti driver ODBC non sono thread-safe; pertanto, le classi ODBC MFC non sono thread-safe se vengono usate con uno di questi driver. È necessario verificare se il driver specifico è thread-safe.
Quando si crea un'applicazione multithreading, è consigliabile prestare molta attenzione all'uso di più thread per modificare lo stesso oggetto. Ad esempio, l'uso dello stesso CRecordset
oggetto in due thread potrebbe causare problemi durante il recupero dei dati. Un'operazione di recupero in un thread potrebbe sovrascrivere i dati recuperati nell'altro thread. Un uso più comune delle classi ODBC MFC in thread separati consiste nel condividere un oggetto aperto CDatabase
tra thread per usare la stessa connessione ODBC, con un oggetto separato CRecordset
in ogni thread. Si noti che non è consigliabile passare un oggetto non aperto CDatabase
a un CRecordset
oggetto in un altro thread.
Nota
Se è necessario che più thread manipolano lo stesso oggetto, è necessario implementare i meccanismi di sincronizzazione appropriati, ad esempio sezioni critiche. Tenere presente che determinate operazioni, ad esempio Open
, non sono protette. È necessario assicurarsi che queste operazioni non vengano chiamate simultaneamente da thread separati.
Per altre informazioni sulla creazione di applicazioni multithreading, vedere Argomenti relativi al multithreading.
Vedi anche
Open Database Connectivity (ODBC)
Programmazione dell'accesso ai dati (MFC/ATL)