使用CRecordset.Open时出错,求教。(odbc+mysql driver)

tjsparkle 2003-09-15 02:54:04
测试代码很简单:
CDatabase mydatabase;
mydatabase.Open(_T("mysqlodbc-test"), FALSE, FALSE, "ODBC;UID=ROOT");

CRecordset myrecordset(&mydatabase);
myrecordset.Open(AFX_DB_USE_DEFAULT_TYPE,"select * from mytable");
//执行到这里就出错。
/*****
debug call stack如下:
KERNEL32! 77e8b2f0()
TESTODBC! _CxxThrowException@8 + 57 bytes
AfxThrowDBException(short -1, CDatabase * 0x0012ff10 {CDatabase}, void * 0x00e215b8) line 70
CRecordset::ThrowDBException(short -1, void * 0x00000000) line 80 + 44 bytes
CRecordset::PrepareAndExecute() line 2485
CRecordset::Open(unsigned int 4294967295, const char * 0x00553030 `string', unsigned long 0) line 1104
****/
.....

数据库使用mysql。安装了mysql的odbc driver 3.51

请教问题出在哪里?

...全文
70 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tjsparkle 2003-09-16
  • 打赏
  • 举报
回复
原来如此。
谢谢。
wflyfox 2003-09-15
  • 打赏
  • 举报
回复
我以前也遇到过这种问题,把AFX_DB_USE_DEFAULT_TYPE改为CRecordset::forwardOnly就可以了,mysql的驱动程序不支持dynamic的结果集.

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧