Cómo crear una base de datos usando ADO en VC
El uso de ADO en VC para operar la base de datos ACCESS es una nueva interfaz para el desarrollo de aplicaciones de bases de datos de Microsoft. Es una tecnología de acceso a bases de datos de alto nivel basada en OLEDB, incluso si no comprende OLEDB y COM. , puede lidiar fácilmente con ADO porque es muy simple y fácil de usar, incluso más fácil de usar que la API ODBC, DAO y RDO con los que ha estado en contacto antes, sin perder flexibilidad. Este artículo presenta en detalle cómo utilizar ADO para desarrollar aplicaciones de bases de datos en el entorno de desarrollo Visual C y proporciona código de muestra. Para permitir que los lectores y amigos prueben el código proporcionado en este ejemplo, utilizamos la base de datos de Access. Puede encontrar esta prueba directamente en el código de muestra que proporcionamos. mdb. El efecto después de compilar y ejecutar el programa se muestra en la Figura 1:
1. Método de implementación
Todo es difícil al principio. Lo más importante para los principiantes con cualquier tecnología nueva. es "comenzar". Domina sus puntos clave. ¡Echemos un vistazo al proceso básico del desarrollo de bases de datos ADO! Sus pasos básicos son los siguientes:
(1) Inicializar la biblioteca COM e introducir el archivo de definición de la biblioteca ADO
(2) Usar el objeto Conexión para conectarse a la base de datos
(3) Utilice la conexión establecida para ejecutar comandos SQL a través de los objetos Conexión y Comando, o utilice el objeto Recordset para obtener el conjunto de registros de resultados para consulta y procesamiento.
(4) Cierre la conexión y suelte el objeto después de su uso.
A continuación, presentaremos los pasos anteriores en detalle y proporcionaremos el código relevante.
1. Inicialización de la biblioteca COM
Podemos usar AfxOleInit() para inicializar la biblioteca COM. Este trabajo generalmente se realiza en la función sobrecargada de CWinApp::InitInstance(), por favor. Mire el siguiente código:
BOOLCADOTest1App::InitInstance()
{
AfxOleInit()
. . . . . .
}
2. Utilice la directiva #import para introducir la biblioteca de tipos ADO
Para introducir la biblioteca de tipos ADO, debe estar en el stdafx del proyecto. archivo h:
#import "c:\programfiles\commonfiles\system\ado\msado15.dll"
no_namespacerename("EOF", "adoEOF")
¿Qué hace esta declaración? Su función final es similar a #include con el que ya estamos muy familiarizados. El sistema generará msado15 durante la compilación. Claro, ado15. Dos archivos de encabezado C para definir la biblioteca ADO.
Los lectores deben prestar atención a: msado15 en su entorno de desarrollo. El dll no está necesariamente en este directorio, modifíquelo según la situación real. Puede aparecer la siguiente advertencia durante la compilación. Microsoft explicó esto en MSDN y sugirió que ignoremos esta advertencia: msado15. tlh(405): advertencia C4146: operador unario menos aplicado al tipo sin firmar, el resultado aún no está firmado.
3. Cree un objeto Connection y conéctese a la base de datos
Para agregar primero un puntero al objeto Connection _ConnectionPtrm_pConnection, el siguiente código demuestra cómo crear una instancia del objeto Connection y cómo conectarse a la base de datos y realizar captura de excepciones:
BOOLCADOTest1Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
HRESULThr;
prueba
{
hr=m_pConnection. CreateInstance("ADODB.Connection"); ///Crear objeto de conexión
if(SUCCEEDED(hr))
{
hr=m_pConnection-gt; Open("Provider=Microsoft.Jet.OLEDB.4.0;
DataSource=test.mdb","","",adModeUnknown ///Conectarse a la base de datos
); //El proveedor en la cadena de conexión en la oración anterior es para el entorno ACCESS2000. Para ACCESS97,
//debe cambiarse a: Proveedor=Microsoft. Chorro. OLEDB. 3. 51;
}
}
catch(_com_errore)///Excepción de captura
{
CStringerrormessage;
mensaje de error. Format("¡Error al conectarse a la base de datos!\r\nMensaje de error: s", e. ErrorMessage());
AfxMessageBox(errormessage); ///Mostrar mensaje de error
}
En este código, nos conectamos a la base de datos a través del método Open del objeto Connection. El siguiente es el prototipo de este método:
HRESULTConnection15::Open(_bstr_tConnectionString, _bstr_tUserID. , _bstr_tPassword , longOptions);
El parámetro ConnectionString en la función anterior es la cadena de conexión; el parámetro UserID es el nombre de usuario; el parámetro Contraseña es la contraseña de inicio de sesión; se utiliza para especificar el permiso del objeto Conexión para actualizar los datos. Generalmente, las opciones pueden ser las siguientes constantes:
adModeUnknown: predeterminado. Los permisos actuales no están establecidos