(1)下面是程序中的SQL语句:
mSqlStr = "INSERT INTO BORROW (READER_ID, BOOK_ID, BORROW_DATE, B_CLERK_ID) VALUES('";
// mSqlStr = "INSERT INTO BORROW (READER_ID, BOOK_ID, B_CLERK_ID) VALUES('";
mSqlStr = mSqlStr + m_strReaderID;
mSqlStr = mSqlStr + "','";
mSqlStr = mSqlStr + m_strBookID;
mSqlStr = mSqlStr + "','";
mSqlStr = mSqlStr + "', m_BORROW_DATE,'"; //获取系统时间SYSDATE
mSqlStr = mSqlStr + "','";
mSqlStr = mSqlStr + m_strUserID;
mSqlStr = mSqlStr + "')";
(2)下面是数据库中对应表的结构:
(3)下面是程序运行时编译器的错误提示:

(4)谢谢大家了,帮帮忙吧,我是初学者,MFC里面SQL语句搞复杂了就看不懂,简单的还是懂,一复杂看起来就眼睛花了
mSqlStr = mSqlStr + "','";
mSqlStr = mSqlStr + "', m_BORROW_DATE,'"; //获取系统时间SYSDATE
mSqlStr = mSqlStr + "','";
这几行多了单引号,上面拼接出来是"','',m_BORROW_DATE'','";这个格式不对,有两个单引号,而且m_BORROW_DATE成字符串了,不是变量
改成
mSqlStr = mSqlStr + "','";
mSqlStr = mSqlStr + m_BORROW_DATE; //获取系统时间SYSDATE
mSqlStr = mSqlStr + "','";
这个程序运行时的错误提示
m_BORROW_DATE,'"; //获取系统时间SYSDATE
这个没有转换。可能和DB的日期格式不兼容。
方法一:查
日期要格式化成字符串,且要单引号配对
你的insert里有4个参数,界面上只有2个,不知你后台逻辑处理时有没有带上其他2个参数
语句改成这样mSqlStr = "INSERT INTO BORROW (READER_ID, BOOK_ID, BORROW_DATE, B_CLERK_ID) VALUES('";
// mSqlStr = "INSERT INTO BORROW (READER_ID, BOOK_ID, B_CLERK_ID) VALUES('";
mSqlStr = mSqlStr + m_strReaderID;
mSqlStr = mSqlStr + "','";
mSqlStr = mSqlStr + m_strBookID;
mSqlStr = mSqlStr + "',";
mSqlStr = mSqlStr + m_BORROW_DATE; //获取系统时间SYSDATE
mSqlStr = mSqlStr + ",'";
mSqlStr = mSqlStr + m_strUserID;
mSqlStr = mSqlStr + "')";