July 9th, 1999, 10:28 AM
I have a problem with Open method (ADO Recordset)
At the fivest table the Open method create an exception
Perhaps is a default Recordset initialization.
My code is:
_RecordsetPtr tmpSchema;
_RecordsetPtr tmpRecord;
_ConnectionPtr tmpConnect;
_CommandPtr tmpCommand;
CREATEiNSTANCE(tmpConnect,Connection);
CREATEiNSTANCE(tmpSchema,Recordset);
CREATEiNSTANCE(tmpCommand,Command);
_bstr_t strConnectString = L"DRIVER={Microsoft Access Driver (*.mdb)};"
L"DBQ=Test_Final.MDB;DefaultDir=C:\\Program Files\\Ado;";
tmpConnect->ConnectionString = strConnectString;
tmpConnect->PutMode(adModeRead);
tmpConnect->Open( "", "", "", -1 );
tmpSchema = tmpConnect->OpenSchema(adSchemaTables);
while(!tmpSchema->adoEOF)
{
_bstr_t table_name = tmpSchema->Fields->GetItem("TABLE_NAME")->Value;
_bstr_t table_type = tmpSchema->Fields->GetItem("TABLE_TYPE")->Value;
if(table_type==_bstr_t("TABLE"))
{
CREATEiNSTANCE(tmpRecord,Recordset);
tmpRecord->Open(table_name,_variant_t((IDispatch *)tmpConnect),adOpenStatic,adLockReadOnly,adCmdTable);
while(!tmpRecord->adoEOF)
{
..........
..........
tmpRecord->MoveNext();
}
tmpRecord->Close();
tmpRecord.Detach();
}
tmpSchema->MoveNext%
At the fivest table the Open method create an exception
Perhaps is a default Recordset initialization.
My code is:
_RecordsetPtr tmpSchema;
_RecordsetPtr tmpRecord;
_ConnectionPtr tmpConnect;
_CommandPtr tmpCommand;
CREATEiNSTANCE(tmpConnect,Connection);
CREATEiNSTANCE(tmpSchema,Recordset);
CREATEiNSTANCE(tmpCommand,Command);
_bstr_t strConnectString = L"DRIVER={Microsoft Access Driver (*.mdb)};"
L"DBQ=Test_Final.MDB;DefaultDir=C:\\Program Files\\Ado;";
tmpConnect->ConnectionString = strConnectString;
tmpConnect->PutMode(adModeRead);
tmpConnect->Open( "", "", "", -1 );
tmpSchema = tmpConnect->OpenSchema(adSchemaTables);
while(!tmpSchema->adoEOF)
{
_bstr_t table_name = tmpSchema->Fields->GetItem("TABLE_NAME")->Value;
_bstr_t table_type = tmpSchema->Fields->GetItem("TABLE_TYPE")->Value;
if(table_type==_bstr_t("TABLE"))
{
CREATEiNSTANCE(tmpRecord,Recordset);
tmpRecord->Open(table_name,_variant_t((IDispatch *)tmpConnect),adOpenStatic,adLockReadOnly,adCmdTable);
while(!tmpRecord->adoEOF)
{
..........
..........
tmpRecord->MoveNext();
}
tmpRecord->Close();
tmpRecord.Detach();
}
tmpSchema->MoveNext%