编译器-MFC中 SQL语句格式的的问题

问题描述

MFC中 SQL语句格式的的问题

(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)下面是程序运行时编译器的错误提示:
![图片说明](http://img.ask.csdn.net/upload/201507/04/1435978126_183775.png)

(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 + "')";

解决方案六:

这个程序运行时的错误提示

时间: 2024-07-29 22:40:46

编译器-MFC中 SQL语句格式的的问题的相关文章

c#-C#中sql语句不能正常执行,各位大牛帮忙看一下

问题描述 C#中sql语句不能正常执行,各位大牛帮忙看一下 private void Form3_Load(object sender, EventArgs e) { string sql = "insert into Phone3 (select * from Phone1 union select * from Phone2)"; SqlConnection con = new SqlConnection(strConn); SqlCommand cmd = new SqlComm

跟踪oracle中sql语句执行过程及相关知识拓展

select * from v$sqlarea; select * from v$sqlarea where first_load_time>'2010-11-27/09:30:00';         这个方法查询结果每条记录显示一条查询语句,且只能查询sql_text小于1000字符的,多余的会被截断.         改进一下: select * from v$sqlarea where first_load_time>'2010-11-27/09:30:00' and sql_text

ASP中SQL语句导致的性能问题

问题|性能|语句 今天,修改了一点上次做的办公管理系统中的文件上传的BUG,原因是ASP中SQL语句性能问题导致了RecordSet对象关闭,结果使数据入库失败.对于这个错误,我目前只能这样理解了: SQL语句 select * from TAB_FILES 打开表后,然后调用AddNew方法添加要更新的数据,表面上看没什么问题,当TAB_FILES表中记录相当多时, select * from TAB_FILES 问题就暴露了,所有被选择的数据会写入系统内存缓冲区(实际操作由RecordSet

mysql-python 脚本中sql语句执行失败的问题

问题描述 python 脚本中sql语句执行失败的问题 如题,一句sql语句,在mysql命令行下可以执行并且有结果,但是,放在一段python脚本里, db.cursor.excute(sql)怎么都是0,这是怎么回事,求破 (我用的pymysql包做数据库连接池,autocommit为Ture) 解决方案 SQL语句中的执行时间问题执行SQL语句脚本文件解决存储过程中SQL字符串语句执行引入参数的问题 解决方案二: 先打印一下python的sql语句,看是否有区别

跳转-关于servlet中sql语句的问题

问题描述 关于servlet中sql语句的问题 String sql=""select * from t_log where name=? and pw=?"";在运行到这句的时候产生以下错误 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '? a

java中sql语句的具体用法,增删查改

问题描述 java中sql语句的具体用法,增删查改 java中sql语句的具体用法,增删查改,如何用动态的方法改变查找的位置,输出的位置,判断这个数据是否存在于数据库中 解决方案 这问题有自己思考过么 解决方案二: https://www.baidu.com/link?url=jykznQpWlQYTk0AcnMob3UN-B_iYzOccrutv00x5SAaAVNOYO8xApShvC6wqWeG9NYgnkacMB-lvt08dSMc68a&wd=&eqid=a253ae6e0001

sql-Android项目,服务器端MyEclipse中SQL语句查询的问题

问题描述 Android项目,服务器端MyEclipse中SQL语句查询的问题 String sql= "select * from restaurant where xiaoqu_name ='"+xiaoqu_name+"'"; 当点击手机端的相应按钮后,数据库中数据是中文时,无法查询到当前条件下的数据 但是当数据库中的数据为全字母时,就可以正常的打印出来,手机端也可以正常的显示 但是当把SQL语句改为 String sql= "select * fr

sqlserver中一条sql语句把插入数据的ID返回出来,oracle中sql语句要怎么写?

问题描述 sqlserver中一条sql语句把插入数据的ID返回出来,oracle中sql语句要怎么写? sqlserver中一条sql语句把插入数据的ID返回出来,oracle中sql语句要怎么写? 解决方案 oracle,sqlserver分页查询sql语句重复的数据只取一条,SQL语句如何写 解决方案二: select test.currval from dual 解决方案三: oracle里面不是差不多的吗

Oracle中SQL语句解析的步骤

我们都知道在Oracle中每条SQL语句在执行之前都需要经过解析,这里面又分为软解析和硬解析.那么这两种解析有何不同之处呢?它们又分别是如何进行解析呢?Oracle内部解析的步骤又是如何进行的呢?下面我们就这些话题进行共同探讨. 在Oracle中存在两种类型的SQL语句,一类为DDL语句,他们是从来不会共享使用的,也就是每次执行都需要进行硬解析.还有一类就是DML语句,他们会根据情况选择要么进行硬解析,要么进行软解析.在Oracle 8i OCP教材的023中1-12有说明SQL语句的解析步骤,