很急的问题:献出我几乎所有的分数:关于DELPHI+ADO+ACCESS的问题!!!焦急等待中,大侠快来看看(20分)

  • 主题发起人 主题发起人 daisyrose
  • 开始时间 开始时间
D

daisyrose

Unregistered / Unconfirmed
GUEST, unregistred user!
将几个值插入ACCESS数据库中的几个表中,代码如下:
var
n:integer;
vv,SQL:string;
begin
vv:='钨金';
n:=1;
SQL:='insert into 矿务报表(序号,名称)values(" n ",'vv')';
c.Execute(SQL);
end;
编译通不过老是C。EXECUTE(SQL)报错,就是sql语句写法不对


 
sql:='insert into 矿务报表(序号,名称)values('''+IntToStr(n)+''','''+vv+''')';
 
...
SQL:='insert into 矿务报表(序号,名称)values('+inttostr(n)+','''+vv+''')';
...
 
vv是变量,不应有引号,应是:...+inttostr(n)+','+vv+')''';
 
为何不把问题列出来?
 
都试过拉,还是提示INSERT INTO 语法错误,字段属性:序号是INTEGER的,名称是CHAR(36)的
 
test
SQL:='insert into 矿务报表(序号,名称) values(:n,:vv)';
c.Params.ParamByName('n').Value := inttostr(n);
c.Params.ParamByName('vv').Value := vv;
以上拼写个别地方可能有误,大致如此
 
Params.ParamByName没有这个属性
 
Parameters.ParamByName('ddh').value
 
我的C是ADOCONNECTION,没有这个属性也,看来还只能用SQL语句(insert into)解决
 
人家说的是AdoQuery
用sql语句很好啊
 
你还是先看看书吧,在ACCESS把SQL语句调通再放到DELPHI里
 
我原来在VB里用SQL语句操作过ACCESS,很好啊,搬到DELPHI就不灵了,现在又很急,所以才来问
 
提示你语法错误,一定是SQL有问题。
上面是你的代码?不可能通过!!你先把全角和半角搞明白。不是的话,把代码贴上来,然后说明
是编译不过还是运行时的错误,是什么错误.
 
最新尝试的是
sql:='insert into 矿务报表(序号,名称)values('''+IntToStr(n)+''','+vv+')';
还是一样说INSERT INTO 语法错误
 
关于Access SQL语句的编写原则:
1、不要使用关键字作为表名或者列名;(很多的经验教训)
2、先在Access里面测试,通过的话一般都是可以的;
3、尽量不用中文为列名和表名;

测试的方法:使用一个TEdit控件,运行过程中将SQL语句Show出来,
拷贝到Access中测试,如果通过应该是没有问题,
否则,请注意1 3 原则。
 
sql:='insert into 矿务报表 (序号,名称) values('''+IntToStr(n)+''','+vv+')';
 
嘿嘿
(序号,名称)
你那个逗号是全角的。。。。。。。
还有括号。。。。。。
呵呵

daisyrose说道:气死我了,,,,,,,()()()()
 
呵呵。老赵兄真够逗的啊.
 
问题所在:这条语句的‘名称’字段(定义为CHAR(36))实际上是被我用来放一个日期型字符串的
其构成如下:04 01 2002,进行到C。EXECUTE(SQL)时提示语法错误(操作符丢失)在查询表达式
‘04 01 2002’中,PROCESS STOPED
 
后退
顶部