En el sistema XP, cuanto más detallados sean los pasos específicos para conectar VC a la base de datos SQL, mejor.
(1) Utilice la instrucción de importación para introducir el componente ADO2.
Ejemplo:
¿#Importar? ¿"C:\ADO\msado15.dll"? ¿sin_espacio de nombres? Rename("EOF", "endo ffile")(2) define una clase derivada de CADORecordBinding para la interacción del programa con los campos de la tabla de la base de datos. Consulte icrsint.h para obtener una definición de esta clase.
Ejemplo:
¿Clase? ¿Cintlive? :?¿público? CADORRecordBinding?
{?
Público:
DBTIMESTAMP? m_fechahora? //Definir variables de campo del conjunto de registros ADO (correspondientes a los campos de la tabla de la base de datos)
Dragon? m_key
¿Dragón? m_value
¿Dragón? m_mass;
¿Palabra? m_stsdatetime? //Definir variables de estado del conjunto de registros ADO
¿Word? m_stskey
¿Palabra? m_stsvalue
¿Palabra? m_stsquality
BEGIN_ADO_BINDING(CIntlive)? //Utilice variables de campo de conjunto de registros ADO para vincular campos de base de datos.
ADO_VARIABLE_LENGTH_entry 2(1,adDBTimeStamp,m_datetime,sizeof(m_datetime),m_stsdatetime,true)
ADO_NUMERIC_ENTRY(2,adInteger,m_key,10,0, m_stskey, true) p>
ADO_NUMERIC_ENTRY (3, adInteger, m_value, 10, 0, m_stsvalue, verdadero)
ADO_NUMERIC_ENTRY (4, adInteger, m_quality, 10, 0, m_stsquality, verdadero)
END_ADO_BINDING()
}; (3) Llama a CoInitialize para inicializar COM::CoInitialize(NULL);
(4) Declara el puntero del objeto Connection y el puntero del objeto Recordset e inicializados. (El nombre del tipo se define en msado15.dll).
Ejemplo:
_ConnectionPtr? pConexión1? =?NULL
_RecordsetPtr? primerADO1? =?NULL(5) define una instancia de la clase derivada CADORecordBinding y su puntero de interfaz vinculante.
Ejemplo:
¿CIntlive? m_intdata?
¿IADORecordBinding? *primerADOBind1? =?NULL(6) genera instancias de objetos de conexión y instancias de objetos de conjunto de registros.
Ejemplo:
pConexión1. crear instancia(_ uuidof(Conexión));?
primerADO1. ¿Crear instancia (_ _ uuidof (Conjunto de registros))? ;(7) Conéctese a la base de datos y abra el objeto del conjunto de registros. Para el uso de parámetros de función abierta, consulte la descripción básica de los parámetros de objeto correspondientes de ADO en Microsoft MSDN.
Ejemplo:
p conexión 1->Open("driver={SQL?server};server=serverauid=sapwd=database=pubs","","" , NULL );
rstado 1->;Open("data ",_variant_t((IDispatch?*)pConnection1,true),?
adOpenKeyset, adLockBatchOptimistic,?ADC mdtable) ; 8) Vincular la instancia de la clase derivada de CADORecordBinding a la interfaz de vinculación del objeto de conjunto de registros.
Ejemplo:
rstadobind 1->BindToRecordset. m _ int data); (9) Manipular la instancia del objeto del conjunto de registros. Para conocer el método de operación, consulte la descripción básica del método correspondiente del objeto de conjunto de registros ADO en Microsoft MSDN.
Ejemplo:
rstado 1->;¿Moviéndose? próximo();? //Mover el cursor al siguiente registro
rstado 1->update(_variant_t("quality"), _variant_t("3"));? //Modifica el valor del campo de calidad del registro a 3.
rstado 1->¿Actualizar? lote (adAffectAll));? //¿Será grabado? Todas las actualizaciones del objeto establecido se envían a la base de datos de una sola vez (10). Cierre el objeto del conjunto de registros y libere la interfaz vinculada.
Ejemplo:
rstado 1->cerrar()?
rstadobind 2->Release();(11)Cerrar la conexión p conexión 1-->close();
(12)Llame a CoUninitialize para liberar recursos COM:: cuenta inicializar();