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

第二次执行sql语句时显示 table 不存在? 【win32 sdk】
判断存储的用户名是否存在,存在则更新用户数据,不存在则新建用户数据
整体的代码架构是:

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);


到底是哪里出错呢?
------解决方案--------------------
测试SQL可以在ADO助手中先试试。