Tienes que saber el tipo de base de datos que almacena el servidor.
Yo hice una conexion con la libreria odbc32, y me funciono bien con una base de datos access
la conexion es la siguiente:
Código:
USELIB("odbc32.lib");
void _export Gestor::conectar()
{
//printf("______________________CONEXION____________________\n");
//espacio para el entorno
odbc_erg=SQLAllocHandle (SQL_HANDLE_ENV,SQL_NULL_HANDLE,&henv);
if ((odbc_erg==SQL_SUCCESS) || (odbc_erg==SQL_SUCCESS_WITH_INFO))
{
//printf("CONEXION(PASO 1)Esto va!!!\n");
//atributos para el entorno
odbc_erg=SQLSetEnvAttr(henv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);
if ((odbc_erg==SQL_SUCCESS) || (odbc_erg==SQL_SUCCESS_WITH_INFO))
{
//printf("CONEXION(PASO 2)Esto va!!!\n");
//SQLFreeHandle(SQL_HANDLE_ENV, henv);
//espacio para la conexion a la base de datos fflush(stdin);
odbc_erg=SQLAllocHandle(SQL_HANDLE_DBC,henv,&ConnectionHandle);
if ((odbc_erg==SQL_SUCCESS) || (odbc_erg==SQL_SUCCESS_WITH_INFO))
{
//printf ("CONEXION(PASO 3)ESto ya va!!\n");
//atributos de la conexion de la base de datos
odbc_erg=SQLSetConnectAttr(ConnectionHandle, SQL_LOGIN_TIMEOUT, (SQLPOINTER *)5,Longuitud);
if ((odbc_erg==SQL_SUCCESS) || (odbc_erg==SQL_SUCCESS_WITH_INFO))
{
//printf ("CONEXION(PASO 4)ESto ya va!!\n");
//conectar a la base de datos 'prueba'
odbc_erg==SQLConnect(ConnectionHandle,(SQLCHAR*)"notas",SQL_NTS,(SQLCHAR*)"", SQL_NTS,(SQLCHAR*)"", SQL_NTS);
if ((odbc_erg==SQL_SUCCESS) || (odbc_erg==SQL_SUCCESS_WITH_INFO))
{
//printf("CONEXION(PASO 5)Esto ya funciona\n");
}
else
{
//printf("CONEXION(PASO 5)Esto ya no funciona!!!\n");
}
}
}
}
}
}
Este es el modo de conexion de c++ a cualquier base de datos, en el caso del ejemplo es
'notas' de access