Share via


CDatabase::Open

Llame a esta función miembro para inicializar un objeto recientemente construido de CDatabase .

virtual BOOL Open(
   LPCTSTR lpszDSN,
   BOOL bExclusive = FALSE,
   BOOL bReadOnly = FALSE,
   LPCTSTR lpszConnect = _T("ODBC;"),
   BOOL bUseCursorLib = TRUE 
);

Parámetros

  • lpszDSN
    Especifica un nombre de origen de datos (un nombre registrado con ODBC con el programa del administrador de ODBC.Si el valor de un DSN se especifica en lpszConnect (en el formato “DSN= <origen de datos> "), no se debe especificar de nuevo en lpszDSN.en este caso, lpszDSN debe ser NULL.Si no, puede pasar NULL si desea mostrar al usuario un cuadro de diálogo del origen de datos en el que el usuario puede seleccionar un origen de datos.Para obtener más información, vea las notas.

  • bExclusive
    No se admite en esta versión de la biblioteca de clases.Actualmente, una aserción si este parámetro es TRUE.El origen de datos se abre siempre compartido (no exclusivo).

  • bReadOnly
    TRUE si desea que una conexión para ser de sólo lectura y prohibir actualizaciones al origen de datos.Todos los conjuntos de registros dependientes heredan este atributo.el valor predeterminado es FALSO.

  • lpszConnect
    especifica una cadena de conexión.La cadena de conexión concatena la información, posiblemente incluyendo el nombre del origen de datos, el Id. de usuario válida en el origen de datos, la cadena de autenticación de usuario (contraseña, si el origen de datos requiere uno), y otra información.La cadena de conexión completa se debe prefijar por la cadena “ODBC; ” (en mayúsculas o minúsculas).“ODBC; ” string se utiliza para indicar que la conexión a un origen de datos ODBC; esto es para la compatibilidad ascendente cuando las versiones futuras de la biblioteca de clases pueden admitir los orígenes de datos de no-ODBC.

  • bUseCursorLib
    TRUE si desea que la biblioteca de cursores ODBC DLL que se va a cargar.La biblioteca de cursores enmascara alguna funcionalidad de controlador ODCB subyacente, evitando eficazmente el uso de conjuntos de registros dinámicos (si el controlador los admite).Los únicos cursores admitidos si la biblioteca de cursores se carga son instantáneas y cursores de sólo avance estáticos.el valor predeterminado es TRUE.Si piensa crear un objeto de conjunto de registros directamente de CRecordset sin derivar de ella, no debe cargar la biblioteca de cursores.

Valor devuelto

Distinto de cero si la conexión se crea correctamente; si no 0 si el usuario elige la cancelación cuando se muestra un cuadro de diálogo solicitando más información de conexión.En todos los demás casos, el marco de trabajo produce una excepción.

Comentarios

El objeto de base de datos debe inicializar antes de utilizarlo para construir un objeto de conjunto de registros.

[!NOTA]

Llamar a la función miembro de OpenEx es la manera preferida de conectarse a un origen de datos y de inicializar el objeto de base de datos.

Si los parámetros en la llamada de Abrir no contienen información suficiente para crear la conexión, el controlador ODBC abre un cuadro de diálogo para obtener la información necesaria del usuario.Cuando se llama a Abrir, la cadena de conexión, lpszConnect, se almacena privada en el objeto de CDatabase y está disponible llamando a la función miembro de GetConnect .

Si se deseo, puede abrir dispone del cuadro de diálogo antes de llamar a Abrir para recopilar información del usuario, como una contraseña, después agregarlo que información en la cadena de conexión que se pasa a Abrir.O tal vez desee guardar la cadena de conexión que se pasa para que pueda reutilizarla la próxima vez que la aplicación llama a Abrir en un objeto de CDatabase .

También puede usar la cadena de conexión para varios niveles de autorización de inicio de sesión (cada uno para otro objeto de CDatabase ) o mostrar otra información origen-específica de los datos.Para obtener más información sobre las cadenas de conexión, vea el capítulo 5 en Windows SDK.

Es posible que un intento de conexión al tiempo de espera si, por ejemplo, el host DBMS no está disponible.Si el intento de conexión, Abrir produce CDBException.

Ejemplo

// m_dbCust is a CDatabase object embedded in a CDocument class

if (bDefault)
{
   // Connect the object to a data source (no password)
   // the ODBC connection dialog box will always remain hidden
   m_dbCust.Open(_T("MFC_ODBCTest"), FALSE, FALSE, _T("ODBC;UID=JOES"));
}
else
{
   // ...Or, query the user for all connection information
   m_dbCust.Open(NULL);
}

Requisitos

encabezado: afxdb.h

Vea también

Referencia

Clase CDatabase

Gráfico de jerarquía

CDatabase::OpenEx

CDatabase::CDatabase

CDatabase::Close

Clase CDBException

CRecordset::Open