¿Cómo se conecta Visual C a la base de datos de SQL Server 2008?
Si usa ADO para conectarse, puede dividirlo en cuatro pasos:
1. Agregar soporte para ADO
2. ;
3. Operar la base de datos en la fuente de datos;
4.
El código se ve así: //?TestADOSql.cpp?: Define el punto de entrada para la aplicación de consola.
//
#include?"stdafx.h"
#include?"iostream"?
#include?"string "?
#include?"vector"?
//Paso 1: Agregar soporte para ADO
#import?"C:\Program?Files \ ¿Común?Archivos\System\ado\msado15.dll"?no_namespace?rename("EOF","adoEOF")?
usando?namespace?std;
int?_tmain ( int?argc,?_TCHAR*?argv[])
{
CoInitialize(NULL);?//Inicializar el entorno COM
_ConnectionPtr?pMyConnect( __uuidof(Connection)); //¿Definir el objeto de conexión y crear una instancia del objeto?
_RecordsetPtr?pRst(__uuidof(Recordset)); //Definir el objeto del conjunto de registros y crear una instancia del objeto
intentar
{?
//Paso 2: crear una conexión de fuente de datos
/*Abra la base de datos "SQLServer". Esto debe basarse en. la situación de la base de datos de su propia PC ?*/?
pMyConnect-gt;Open("Provider=SQLOLEDB;?Server=.;Database=AIS2;?uid=sa;?pwd=;", "","",adModeUnknown) ;
}?
catch?(_com_error?amp;e)
{ coutlt;lt;"¿Iniciar?falló !"lt;lt;endl; coutlt;lt;e.Description()lt;lt;endl; coutlt;lt;e.HelpFile()lt;lt;endl; return?0;
}
coutlt ;lt;"Connect?succeed!"lt;lt;endl;?
//Paso 3: Operar la base de datos/tabla en la fuente de datos
try
{
pRst?=?pMyConnect-gt; Execute("select?*?from?gendat", NULL, adCmdText); //Ejecutar SQL:?select); ?*?de?gendat?
if(!pRst-gt;BOF)?
{
pRst-gt;MoveFirst();? p>
}
else
{
coutlt;lt;"¿Los datos? están? vacíos!"lt;lt;endl;? p>
return? 0;
}
vectorlt;_bstr_tgt;?column_name;?
/*Almacenar todos los nombres de columnas de la tabla, mostrar nombres de columnas de la tabla*/ p>
for(int?i=0;?ilt;?pRst-gt;Fields-gt;GetCount();i)
{ p>
coutlt;lt; pRst-gt;Campos-gt;GetItem(_varian
t_t((long)i))-gt;Namelt;lt;"?";
nombre_columna.push_back(pRst-gt;Fields-gt;GetItem(_variant_t((long)i))-gt ; Nombre);
}
coutlt;lt;endl;
/*Recorre la tabla y muestra el contenido de cada fila de la tabla*/
while(!pRst-gt;adoEOF)
{
vectorlt;_bstr_tgt;::iterator?iter=column_name.begin();
for(iter;iter!=column_name.end();iter )
{?
if(pRst-gt;GetCollect(*iter).vt?!= VT_NULL)?
{?
coutlt;lt;(_bstr_t)pRst-gt;GetCollect(*iter)lt;lt;"?";?
}?
else
{
coutlt;lt;"NULL"lt;lt;endl;?
}?
}
pRst-gt; MoverSiguiente();
coutlt; endl;?
}
}
catch(_com_error?amp;e)
{
coutlt;lt;e.Description()lt;lt;endl;
coutlt;lt;e.HelpFile()lt;lt;endl;
return?0;?
}?
//Pasos 4: Cierra la fuente de datos
/*Cierra la base de datos y suelta el puntero*/
prueba
{
pRst-gt ; Close( );?//Cerrar el conjunto de registros
pMyConnect-gt;Close();//Cerrar la base de datos
pRst.Release();//Liberar el objeto del conjunto de registros pointer
pMyConnect.Release();//Libera el puntero del objeto de conexión
}
catch(_com_error?amp;e)
{
coutlt;lt;e.Description()lt;lt;endl;
coutlt;lt;e.HelpFile()lt;lt;endl;
return? 0;
}?
CoUninitialize();?//Liberar el entorno COM
return?0;
}