插入操作错误(access2000)--在线等

剑心 2003-08-22 11:00:32
数据链路和数据库权限设置均没有任何问题.表的内容也与数据操作相同(没有任何外码定义)

这是我的asp程序打印出来的语句

INSERT INTO user (uid,name,pwd,Group,Level,Question,Answer,info) VALUES ('dson','dson','dson',1,'1','dson','dson','dson')

使用connection的execute执行.
错误提示信息为:

Syntax error in INSERT INTO statement.
完整错误信息为

Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error in INSERT INTO statement.

调试多时,均未果.查找ado手册,也没有这个错误代码.

请大虾帮助解决.谢谢
...全文
29 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
剑心 2003-08-22
  • 打赏
  • 举报
回复
ok, to jiejifeng(zj),呵呵

这个关键字问题

这个user是可以作为表名使用的.我在其他的数据库参考过,
在连接串里写也是没有问题的.

目前最主要的问题:

数据库无法执行插入操作.(提示如上的错误)

选择和更新时,表名必须要用[]括起来.但是在其他的数据 库设计中,可以不括起来.但这个必须括,为什么?

虽然我认为目前这个写法没有什么问题,

但它肯定存在问题,不然也就不会出错了!(数据库已经设置为everyone完全控制啦)
另有问题,如果移植到sqlsvr中,需要修改sql语句吗?

附:使用的连接串

dim connstr,dbsource
dbsource="database/hench_crm.mdb"
connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.MapPath(dbsource)
'for the old access driver
'connstr="driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath(dbsource)
on error resume next
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open(connstr)
'正常执行时 err.number 值为0
if err.number<>0 then
call errmsg(err.description)
call crm_error()
end if
这个就是目前提供的信息了,希望能帮助大家更好的解决这个问题.

有什么疑问,请尽管提,我会尽量满足大家.

也希望大家踊跃解决这个问题.

谢谢.
剑心 2003-08-22
  • 打赏
  • 举报
回复
这是我的asp程序打印出来的语句

仍然是这个错误
下面的语句已经是俯好值的了,不涉及到变量问题.

INSERT INTO user (uid,name,pwd,Group,Level,Question,Answer,info) VALUES ('dson','dson','dson',1,'1','dson','dson','dson')

使用connection的execute执行.
完整错误信息为
Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error in INSERT INTO statement.

调试多时,均未果.查找ado手册,也没有这个错误代码.
TO jiejifeng(zj)
使用insert操作的.有主键,它是自动增量,这里面没有为它赋值,uid是(用户的昵称).
user是个保留字吗?这个我不太清楚,因为我建立表的时候用的是user,
但是并没有提示非法操作.
那么在access连接中使用[表名]这样的写法,update可以,可是insert不可以呢.
语法有错误吗?

jiejifeng 2003-08-22
  • 打赏
  • 举报
回复
因user是sql保留字,

现在的错误是什么,现在你是用 addnew插入的还是用insert插入的?
你有没有建主键并让其递增,如是的话不用为其赋值
剑心 2003-08-22
  • 打赏
  • 举报
回复
ok,现在又有新进展:

数据库可以更新的

update [user] set name='dson' where id = 1

我使用这句执行成功
但是,插入操作仍然不行.(我都要爆炸了,调了两天了啊!!!!!)

请大家多多指教,快点帮我把这个问题解决啦!
分少了当然是可以加 的啊,我的分肯定够给大家分的哦
剑心 2003-08-22
  • 打赏
  • 举报
回复
ok,现在这个选择倒是可以将就着用了

(select * from [user])

这样就可以(why?)

然后呢,这个插入操作还是不行,我把它的user表也加了[],仍然没有用.

急急急,求救!

sossossossossossossossossossossossossossossossossossossossossossossossossossossos
剑心 2003-08-22
  • 打赏
  • 举报
回复
谢谢;
To ;lions911(--ASP--ASP.NET--)
这是我调试的时候用的,打印出来的是从表单中取得的值,我就是看不出来哪里错了,因为这个这个我看了文档,和文档上面一模一样的.

To:: lsrzm(月影飞鸿--我要分、分、分.....)
数据库在我本地,权限我已经设置为everyone完全控制啦.

To; diya(风火浪)
数据类型是正确的,和数据库中的一样(数据库就在我机器上,是我设计的啊)

waiting...
啊,我用了select语句了,还是出错(晕):
select * from user

错误如下:
Error Type:
Microsoft JET Database Engine (0x80040E14)
Syntax error in FROM clause.
/crm/user_info_edit.asp, line 73
ttt2 2003-08-22
  • 打赏
  • 举报
回复
uid是什么类什么呀
tigerwen01 2003-08-22
  • 打赏
  • 举报
回复
INSERT INTO user (uid,name,pwd,Group,Level,Question,Answer,info) VALUES ('dson','"&dson','dson',1,'1','dson','dson','dson')
查看一下,数据类型是否对应。
diya 2003-08-22
  • 打赏
  • 举报
回复
insert into user(uid)values('"&dson&"')

核对数据类型。
lsrzm 2003-08-22
  • 打赏
  • 举报
回复
先用select语句判断链接是否正确,如果正确的话则为你没有
插入的权限,数据库是不是放在本地?
lions911 2003-08-22
  • 打赏
  • 举报
回复
如果有日期型字段要'#dson#'

如果DSON是个变量,要:
'"&dson&"'
剑心 2003-08-22
  • 打赏
  • 举报
回复
非常感谢大家的支持和帮助,

现在我非常激动,

因为问题已经得到了解决!!!

(啊,就为这个,花了我两天的时间,
因为不解决问题我总是放心不下,
吃饭睡觉都不香,

现在终于能好好睡一觉啦(真想快点天黑))

这个问题的原因是:sql关键字的问题(可恶)

分析:这里面有两处和关键字冲突(Group,Level均为权限管理而使用?)
因此总是执行不成功(语法完全没有问题的哦,
但是它也不提示关键字冲突,害的我好找)

总结: 首先,大家今后要尽量避免(误)使用关键字作为数据库字段.
另外,出了问题后,及时向大家请教,同时自己使用最小集合(
经常给别人讲这个,但到了自己唉(
主要是认为语法没有错误,应该是别的错误,
因此一直没有修改语句))

解决方法: 使用recordset对象对字段进行操作,可避开关键字问题,因此
如果你不想(或无法)修改数据库的话,那么请使用此对象.将确保操作数据库正确.

有时间我会找出来(谁都可以)sql关键字集合贴出来,希望大家引以为戒.增长知识.

再次感谢大家的关注和支持!

让我们努力生活 大步前进!
Ianlan 2003-08-22
  • 打赏
  • 举报
回复
在access中直接写sql语句试一下,看有什么样错误提示
defore 2003-08-22
  • 打赏
  • 举报
回复
我以前也遇到国这种问题,后来改成ODBC连接数据库,问题就解决了

不过我还是不知道原因
raoguofeng 2003-08-22
  • 打赏
  • 举报
回复
是啊是啊 可能有其他方面的原因 比如你写的不规范 数据库连接也是个问题
你先把这个语句在在SQL 查询分析器里调试一下就知道 是对还是错了

那你就用排除法 呵呵不要急程序不是急出来的 可能就是一个很小的原因 大家看你贴出来得东西 去猜想那里有可能出错 其实这样难度也挺大的 呵呵
我给你发一个我的程序 也很烂 但是一定能用 呵呵你看看有没有启发
response.buffer="True"
dim conn
dim connstr

on error resume next
connstr="DBQ="+server.mappath("你自己库的名字.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
Set rs = Server.CreateObject("ADODB.RecordSet")
sql="select * from tests"
rs.open sql,conn,1,3
rs.addnew
rs("GID")=trim(request.Form("hand"))
rs.update

jiejifeng 2003-08-22
  • 打赏
  • 举报
回复
应该是 Insert Into [user] (uid,name,pwd,Group,Level,Question,Answer,info) VALUES ('dson','dson','dson',1,'1','dson','dson','dson')


这个[user]你有 加上  []吧??
defore 2003-08-22
  • 打赏
  • 举报
回复
你试试用ODBC连接数据库呢
tigerwen01 2003-08-22
  • 打赏
  • 举报
回复
INSERT INTO user (uid,name,pwd,Group,Level,Question,Answer,info) VALUES ('dson','dson','dson',1,'1','dson','dson','dson')
语句绝对是对的,其他原因,例如数据类型,权限等你再查查。
剑心 2003-08-22
  • 打赏
  • 举报
回复
To:jiejifeng(zj)
和以前一样的啊,没有什么变化
Microsoft JET Database Engine (0x80040E14)
Syntax error in FROM clause.
To:tigerwen01(小虎)(编程艺术化)
access2000啊(我晕)

谢谢大家的关注,请帮助解决,给分决不吝啬!
tigerwen01 2003-08-22
  • 打赏
  • 举报
回复
请问你使用的是什么数据库?
加载更多回复(7)

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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