以下是代码:
int main(int argc, char* argv[])
{
cout<<"建立连接对象!"<<endl;
CDatabase MyDataBase; cout<<"打开连接!"<<endl;
MyDataBase.OpenEx(_T("DSN=libr;UID=sa;PWD=q1w2e3r4" ),
CDatabase::noOdbcDialog ); cout<<"获取默认连接数据库名称!"<<endl;
string aa=MyDataBase.GetDatabaseName();
cout<<""<<aa<<endl; cout<<"建立结果对象!"<<endl;
CRecordset recset(&MyDataBase); cout<<"执行SELECT * FROM book!"<<endl;
recset.Open(CRecordset::forwardOnly,"SELECT * FROM book",CRecordset::readOnly);
cout<<"字段数:"<<recset.GetODBCFieldCount()<<endl; CDBVariant var;
cout<<"从结果中读取记录!"<<endl; while (!recset.IsEOF())
{
recset.GetFieldValue("id",var);
cout<<"id字段:"<<var.m_iVal<<endl;
//recset.GetFieldValue("name",var);
// cout<<"name字段:"<<var1.m_pstring<<endl;
// cout<<"读取下一条记录!"<<endl; recset.MoveNext();
}
printf("Hello World!\n");
return 0;
}
有一张book表,表中有三个字段,id,name,title。从结果集中读取id字段没问题,读取name就出现错误了。。控制台数据库
int main(int argc, char* argv[])
{
cout<<"建立连接对象!"<<endl;
CDatabase MyDataBase; cout<<"打开连接!"<<endl;
MyDataBase.OpenEx(_T("DSN=libr;UID=sa;PWD=q1w2e3r4" ),
CDatabase::noOdbcDialog ); cout<<"获取默认连接数据库名称!"<<endl;
string aa=MyDataBase.GetDatabaseName();
cout<<""<<aa<<endl; cout<<"建立结果对象!"<<endl;
CRecordset recset(&MyDataBase); cout<<"执行SELECT * FROM book!"<<endl;
recset.Open(CRecordset::forwardOnly,"SELECT * FROM book",CRecordset::readOnly);
cout<<"字段数:"<<recset.GetODBCFieldCount()<<endl; CDBVariant var;
cout<<"从结果中读取记录!"<<endl; while (!recset.IsEOF())
{
recset.GetFieldValue("id",var);
cout<<"id字段:"<<var.m_iVal<<endl;
//recset.GetFieldValue("name",var);
// cout<<"name字段:"<<var1.m_pstring<<endl;
// cout<<"读取下一条记录!"<<endl; recset.MoveNext();
}
printf("Hello World!\n");
return 0;
}
有一张book表,表中有三个字段,id,name,title。从结果集中读取id字段没问题,读取name就出现错误了。。控制台数据库
try
{
//你的ADO代码
}
catch (_com_error& e)
{
CString strMsg;
strMsg.Format(_T("错误描述:%s\n错误消息%s"),
(LPCTSTR)e.Description(),
(LPCTSTR)e.ErrorMessage());
AfxMessageBox(strMsg);
}
catch(CException* pEx)
{
pEx->ReportError();
pEx->Delete();
}