帮我看一下如此简单的sql语句为何竟然报错,急(50分)

  • 主题发起人 主题发起人 thyong
  • 开始时间 开始时间
T

thyong

Unregistered / Unconfirmed
GUEST, unregistred user!
语句为:[red]sql.add('insert into sysuser(id,name,logonname,password)');
sql.add(' values(:id,:name,:logonname,:password)');
adoquery3.Parameters.ParamByName('id').value:=strtoint(edit1.text);
adoquery3.Parameters.ParamByName('name').value:= trim(edit2.text);
adoquery3.Parameters.ParamByName('logonname').value:=trim(edit3.text);
adoquery3.Parameters.ParamByName('password').value:=edit4.text;[/red]
数据库为access2000,其中id(数字型),name,logonname,password为(文本)
在access中直接使用insert 语句,通过的,并且程序在其他地方的insert into语句类似,
但都通过的。请指教。
小弟比较穷,只有点点分了,见谅。
 
出什么错误了提示信息贴上来。
 
其中id是不是自动增量字段,如果是的话,就应该去掉.
 
s :='insert into sysuser(id,name,logonname,password)
values(%d,%s,%s,%s)';
s := format(s,[
strtoint(edit1.text),
trim(edit2.text),
trim(edit3.text),
edit4.text]);
sql.add(s);
试试这种形式的。
 
提示为insert into语法错误,我已经升了ado包1,2了
 
会出错的两个点:1 进行数字转换时出错。strtoint(edit1.text)
2 表内数据出错。如:主键重复,自增ID等。
 
把两个Add换成下面看看
sql.Text := 'insert into sysuser(id,name,logonname,password) values(:id,:name,:logonname,:password)';
 
id为整形无小数类型,

CrazyIdea,你的方法也一样的问题,insert into 语法有错误,
 
各位提供的方法我都试了,不行啊。
 
SQL.Clear了吗
 
是啊,sql.close;
sql.clear;
sql.add('......');
execsql;

 
password为access的关键字,换个名字就行了
 
谢谢各位。

谢谢vxdwan。果然这样,哈哈
 
接受答案了.
 
后退
顶部