读书人

C++联接 MySQL 内存冲突

发布时间: 2013-01-18 10:22:42 作者: rapoo

C++连接 MySQL 内存冲突
这次是真的不行了,怎么试都不行,恳请大侠帮忙看看是怎么回事

很简单的网上当来的小程序

sql::Driver *driver;  
sql::Connection *con;
sql::Statement *stmt;
sql::ResultSet *res;
/* Create a connection */
driver = get_driver_instance();
//连接数据库
con = driver->connect("tcp://192.168.20.224:3306", "root", "111111");
/* Connect to the MySQL sj database */
//选择要连接的数据库
con->setSchema("tiamsql");
//新建一个执行语句
stmt = con->createStatement();
cout << "stmt->" << stmt << endl;
//执行语句并返回结果集
res = stmt->executeQuery("select * from student");
//遍历结果集
while (res->next())
{
cout << "res->" << res->next() << endl;
//这里的ID是name表中的字段名
cout << res->getString("name") << endl;
}


每次运行到 最后一行 cout << res->getString("name") << endl; 的时候会出现中断
错误如下

.exe 中的 0x5702aa48 处未处理的异常: 0xC0000005: 读取位置 0x0000000c 时发生访问冲突

真的不知道怎么弄了,连接的版本试了很多个,都是读取冲突,不明白到底哪里弄得不对了,是不是什么配置有问题,请多多指教。谢谢了!
[解决办法]
估计是连接字符窜的问题!
adoassistant 的软件 你去下载一个!
[解决办法]
Windows:
崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处。
Linux:
进程意外退出会在当前目录下产生形如‘core.数字’的文件比如‘core.1234’
使用命令
gdb 运行程序名 core.数字
进入gdb然后使用bt命令
可以查看进程意外退出前函数调用的堆栈,内容为从上到下列出对应从里层到外层的函数调用历史。
如果进程意外退出不产生core文件,参考“ulimit -c core文件最大块大小”命令

读书人网 >C++

热点推荐