Pregunta: | 7215 - OLEDB WITH VISUAL C++ |
Autor: | Paula Senor |
Quiero migrar mi aplicación a SQL y no utilizar ODBC, ya que es muy lento. Mi idea era a través de OLEDB, que es otra de las opciones que brinda Visual C cuando uno crea sus Recordsets, pero no me habilita esta opción. Debo estar haciendo algo mal. Agradecería al que me pueda ayudar. |
Respuesta: | Juan Pablo Crossley |
Para poder usar interfaces de ADO debes importar la libreria de msado15.dll, esto lo haces con la instrucción:
#import "c:\archivos de programa\archivos comunes\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF") posteriormente puedes crear instancias de Objetos ADO Connection y ADO Recordset de esta manera: _ConnectionPtr c; c.CreateInstance(__uuidof(Connection)); y _RecordsetPtr r; r.CreateInstance(__uuidof(Recordset)); puedes referirte a la documentación de ADO para los metodos que aceptan cada uno, pero basicamente son... faciles de usar, por ejemplo para abrir una conexion con SQL Server y un servidor llamado Pruebas: c->Open("Provider=SQLOLEDB; Data Source=Pruebas", "sa", "", -1); para abrir un recordset: r->Open("SELECT * FROM ACCOUNT", c.GetInterfacePtr(), adOpenDynamic, adLockBatchOptimistic, 0); VARIANT v = r->GetCollect("Campo1"); si el campo es de tipo VT_BSTR puedes obtener el valor asi: BSTR b = v.bstrval; ... si tienes dudas me cuentas.. |