23
2008
09

Microsoft JET Database Engine (0x80040E14)

开发网站遇到的一个数据库方面的问题。

以前设计留言簿的后台程序,遇到了一个问题,我觉得有些代表性就把他总结一下写出来。

问题是SQL的一个INVERT语句试了好多次都没调试通过。
我在数据库中建立好了leavemsg表
SQL语句如下
sql=""Insert into leavemsg(names,qq,mail,homepage,content,msgdate,msgtime,ip) ""
sql=sql&""Values(""""&names&"""",""&qq&"",""""&mail&"""",""""&homepage&"""",""""&content&"""",""
sql=sql&msgdate&"",""&msgtime&"",""""&ip&"""")""
MyConn.execute(sql)
可是调试了好多遍,以为是字段值该不该带单引号的问题,可是不管怎么改都显示
Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error in INSERT INTO statement.
/Mydream/laboratory/insert.asp, line 36
我就把自己写了个Insert类似的语句在SQL系统的查询分析器中测试,通过。
于是我怀疑是不是MyConn对象建立错了,于是我又写了个Select语句查询,通过。
于是我写一个最简单的sql语句来试一下
INSERT INTO LeaveMsg(names) VALUES(""yangfei"")""
没想到又显示语法错误了,这么简单的语句明显是正确的嘛。
我在数据库中又建了一个S表,里面只有lyb一个字段,测试通过了。添加一个names字段,测试给names字段插入又通不过了。我又添加一个lyb2字段,给lyb2字段插入通过了。
我把names字段改了个名字,测试立刻通了。
这下我明白了,我知道name是html里的关键字,所以用names做字段名,可能names是sql语句里的一个关键字,所以这样写会错误。
哎,以后再遇到这样的情况就要先看看字段名,有没有用了关键字的。

 

« 上一篇下一篇 »

相关文章:

网站栏目简介  (2008-10-19 15:15:49)

SQL面试经典题目  (2008-10-14 22:12:39)

数据库理论基础入门  (2008-9-23 22:41:14)

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。