DAO/Jet Cannot Be Used in Transaction Server Components

ID: Q166107

The information in this article applies to:


Microsoft Data Access Objects (DAO) using the Jet Engine cannot be used within a Microsoft Transaction Server component.


When given incomplete or incorrect information about an ODBC Data Source, Jet invokes a dialog box to prompt the user for the correct or complete information. Because the component is running on a server that may be unattended, or because the component may not have access to the desktop, a logon dialog box has the effect of causing the component to stop responding.

Calling SQLDriverConnect with the SQL_DRIVER_NOPROMPT flag prevents this from occurring. However, Jet does not invoke SQLDriverConnect with this flag. ODBC 3.0 Connection Pooling requires SQL_DRIVER_NOPROMPT; therefore, Microsoft Transaction Server denies a connection to any component that does not use this flag.

The C++ Classes, MFC DAO, only provide DAO connection with Jet, and therefore cannot be used. The C++ DAO SDK 3.5 classes do provide ODBCDirect, which is really a separate engine from Jet (by way of RDO). You can specify a flag (dbDriverNoPrompt) in the OpenConnection method with ODBCDirect that enables the SQL_DRIVER_NOPROMPT flag. Likewise, DAO 3.5 within Visual Basic 5.0 also offers ODBCDirect.

Other database connectivity alternatives include the following:


http://www.microsoft.com/transaction/ http://www.microsoft.com/support/transaction/

Additional query words: MfcDao MfcDatabase dbDao hang hanging stop stopped freeze freezes locked locked-up locks up open

Keywords          : kbprg TSrvODBC 
Version           : 1.0
Platform          : WINDOWS
Issue type        : kbinfo

Last Reviewed: October 11, 1997