第二次执行sql语句时显示 table 不存在? 【win32 sdk】

helloDesword 2013-08-17 03:23:42
判断存储的用户名是否存在,存在则更新用户数据,不存在则新建用户数据
整体的代码架构是:

1、初始化数据库的连接环境

2、
从edit框中获取inputUser 字符串执行检索操作

sprintf(sql , "select FUser from t_user where FUser='%s'" , inputUser);


result = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
result = SQLPrepare(hstmt,(SQLCHAR*)sql,SQL_NTS);
CHECKDBSTMTERROR(hwnd,result,hstmt);//检查错误
result = SQLExecute(hstmt);//执行sql语句
CHECKDBSTMTERROR(hwnd,result,hstmt);

第一条sql语句,可以正常执行

3、根据执行结果判断
SQL_NO_DATA_FOUND == SQLFetch(hstmt) 则不存在同名用户,新建

sprintf(sql , "insert into t_uer(FUser,FPassword) values('%s','%s')" , inputUser , inputPassword);

按照上面的执行再来一次结果 ,发生提示t_user 不存在的错误
result = SQLAllocHandle(SQL_HANDLE_STMT, hdbc, &hstmt);
result = SQLPrepare(hstmt,(SQLCHAR*)sql,SQL_NTS);
CHECKDBSTMTERROR(hwnd,result,hstmt);
result = SQLExecute(hstmt);//执行sql语句,这一句出错
CHECKDBSTMTERROR(hwnd,result,hstmt);

第二条sql语句出错,为什么呢?

莫非是要重新初始化变量?
我在前面把东西都关了,再DataInit重新连接,变量置0,还是一样显示t_user不存在,为什么呢?
SQLFreeStmt(hstmt,SQL_CLOSE);
SQLDisconnect(hdbc);
SQLFreeHandle(SQL_HANDLE_DBC,hdbc);
SQLFreeHandle(SQL_HANDLE_ENV,henv);
henv = NULL;
hdbc = NULL;
hstmt = NULL;
result = NULL;

DataInit(hwnd , henv , hdbc , hstmt , result);


到底是哪里出错呢?
...全文
147 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
helloDesword 2013-08-17
  • 打赏
  • 举报
回复
引用 1 楼 zyq5945 的回复:
测试SQL可以在ADO助手中先试试。
感谢回答。工具还在研究中,不大会使用, 我的错误已经找到,自己的粗心。 把t_user 写成了 t_uer 导致表不存在。
zyq5945 2013-08-17
  • 打赏
  • 举报
回复
测试SQL可以在ADO助手中先试试。

4,011

社区成员

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

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