如题,我第一次用Visual studio写代码,有些地方摸得不是很清楚。 在使用ODBC连接MySQL数据库的时候执行SQLPrepare的时候程序就在这里出现运行时错误:odbc32.dll处发生错误卡在这里,上网搜索也没搜出个所以然来,,
请问大佬能帮忙解答一下这是什么原因吗
源代码如下
#include<windows.h>
#include<sql.h>
#include<stdio.h>
#include<sqlext.h>
#include<sqltypes.h>
#include<string.h>
#include <time.h>
#define ll long long
#define db double
#define fl float
#pragma warning(disable:4996)
#define LOGIN_TIMEOUT 30
#define MAXBUFLEN 255
using namespace std;
RETCODE ret;
HENV env = NULL;
HDBC conn = NULL;
HSTMT hstmt = NULL;
void work() {
int choice = 0;//存放用户选项
ret=SQLAllocEnv(&env); //分配连接句柄
ret=SQLAllocConnect(env, &conn);
ret=SQLConnect(conn, (SQLCHAR*)"liba", SQL_NTS, (SQLCHAR*)"root", SQL_NTS, (SQLCHAR*)"qyp5225884", SQL_NTS);
HSTMT temp;
SQLRETURN err;
SQLINTEGER Fin = SQL_NTS, lent;
err = SQLAllocConnect(conn, &temp); int cnt = 0;
err = SQLPrepare(temp, (SQLCHAR*)"SELECT COUNT(*) FROM book WHERE bno = \"0000000001\";", SQL_NTS);
SQLExecute(temp);
exit(0);
}
int main() {
work();
return 0;
}
内存异常,看看哪里没有初始化
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y
应该每一个ret以及err,即函数的返回值,都应该判断啊,估计是第24,29行返回错误了
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10581430.html
希望对你有帮助:https://blog.csdn.net/it_xiangqiang/category_10768339.html