Ayuda con la api de ODBC
Publicado por Emilio (1 intervención) el 26/05/2004 18:36:44
Estoy intentando trabajar directamente con la Api de la ODBC, pero esta me dá un error.
//pido EnvironmentHandle y pongo propiedades
rc=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);
SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,0);
//pido ConnectionHandle
rc=SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);
//conecto con la base de datos de access
rc=SQLDriverConnect(hdbc,NULL,(SQLCHAR*)cns,SQL_NTS,(SQLCHAR*)strOut,255,(SQLSMALLINT*)&iOut,SQL_DRIVER_NOPROMPT);
//pido StatementHandle
rc=SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);
//selecciono todos los elementos de la tabla
rc=SQLPrepare(hstmt,(SQLCHAR*)szSQL,SQL_NTS);
rc=SQLExecute(hstmt);
//asigno los buffer de retorno para los campos en la consulta
rc=SQLBindCol(hstmt,1,SQL_C_ULONG,&persona.ci,sizeof(persona.ci),(SQLINTEGER*)&ret1);
rc=SQLBindCol(hstmt,2,SQL_C_CHAR,&persona.nombre,sizeof(persona.nombre),(SQLINTEGER*)&ret2);
//leo la primera fila
rc=SQLFetch(hstmt); //aqui dá el error
//libero StatementHandle
rc = SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
//me desconecto de la BD
rc=SQLDisconnect(hdbc);
//libero ConnectionHandle
rc = SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
//libero EnvironmentHandle
rc = SQLFreeHandle(SQL_HANDLE_ENV, henv);
Si alguien tiene alguna idea de que sea, por favor ayudenme. gracias de antemano. Emilio
//pido EnvironmentHandle y pongo propiedades
rc=SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);
SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(SQLPOINTER)SQL_OV_ODBC3,0);
//pido ConnectionHandle
rc=SQLAllocHandle(SQL_HANDLE_DBC,henv,&hdbc);
//conecto con la base de datos de access
rc=SQLDriverConnect(hdbc,NULL,(SQLCHAR*)cns,SQL_NTS,(SQLCHAR*)strOut,255,(SQLSMALLINT*)&iOut,SQL_DRIVER_NOPROMPT);
//pido StatementHandle
rc=SQLAllocHandle(SQL_HANDLE_STMT,hdbc,&hstmt);
//selecciono todos los elementos de la tabla
rc=SQLPrepare(hstmt,(SQLCHAR*)szSQL,SQL_NTS);
rc=SQLExecute(hstmt);
//asigno los buffer de retorno para los campos en la consulta
rc=SQLBindCol(hstmt,1,SQL_C_ULONG,&persona.ci,sizeof(persona.ci),(SQLINTEGER*)&ret1);
rc=SQLBindCol(hstmt,2,SQL_C_CHAR,&persona.nombre,sizeof(persona.nombre),(SQLINTEGER*)&ret2);
//leo la primera fila
rc=SQLFetch(hstmt); //aqui dá el error
//libero StatementHandle
rc = SQLFreeHandle(SQL_HANDLE_STMT, hstmt);
//me desconecto de la BD
rc=SQLDisconnect(hdbc);
//libero ConnectionHandle
rc = SQLFreeHandle(SQL_HANDLE_DBC, hdbc);
//libero EnvironmentHandle
rc = SQLFreeHandle(SQL_HANDLE_ENV, henv);
Si alguien tiene alguna idea de que sea, por favor ayudenme. gracias de antemano. Emilio
Valora esta pregunta


0