CdbDBEngine::OpenConnection Method

Opens a Connection object on an ODBC data source (ODBCDirect workspaces only).

Syntax

CdbConnectionOpenConnection(LPCTSTR pstrName,

LONG lOption=-1L,

BOOL bReadOnly=FALSE,

LPCTSTR pstrConnect=NULL);

Parameters

Type Example Description
LPCTSTR pstrName A pointer to a string that contains the name of a registered ODBC data source (DSN). If it doesn't refer to a valid ODBC data source name, an error occurs.
LONG IOption Optional. A Long value that specifies how the ODBC driver manager should prompt the user for connection information such as DSN, user name, and password. Possible values are described in Remarks.
BOOL bReadOnly Optional. A Boolean.

TRUEOpens a Connection object for read-only access.

FALSE(Default) Opens a Connection object for read/write access.

LPCTSTR pstrConnect Optional. A pointer to a string that contains the ODBC connect string. See the Connect property for the specific elements and syntax of this string. A prepended "ODBC;" is required. If Connect is omitted (default), the UID and/or PWD will be taken from the UserName and Password properties of the Workspace.

Remarks

The following are valid Options values.

Constant Description
dbDriverNoPrompt The ODBC driver manager uses the connection string provided in Name and Connect. If sufficient information is not provided, a trappable error is returned.
dbDriverPrompt The driver manager displays the ODBC Data Sources dialog box. The connection string used to establish the connection is constructed from the DSN selected and completed by the user via the dialog boxes, or, if no DSN is chosen, the default DSN is used.
dbDriverComplete If the Connect argument includes the DSN keyword, the driver manager uses the string as provided in Connect. Otherwise it behaves as it does when dbDriverPrompt is specified.
dbDriverCompleteRequired Behaves like dbDriverComplete except the driver disables the prompts for any information not required to complete the connection.

The OpenConnection method is similar but not equivalent to OpenDatabase. The main difference is that OpenConnection is available only in an ODBCDirect workspace.

Usage

#include <afxole.h>
#include <dbdao.h>
CdbDBEngine      dben(..., dbUseODBC);
CdbConnection   conn;
CdbRecordset      rstX;
conn = dben.OpenConnection(_T("ODBC;..."), dbDriverNoPrompt,
                           FALSE, T("DATABASE=SomeDB..."));
rstX = conn.OpenRecordset(...);