数据库插入语句错误,请帮忙看一下 (insert into 语句) ( 积分: 100 )

  • 主题发起人 主题发起人 清风杨
  • 开始时间 开始时间

清风杨

Unregistered / Unconfirmed
GUEST, unregistred user!
With ADOQuery1 do
begin
Sql.Clear;
Sql.Add('insert into input1 (inputno,name,amount,date,memo)values(:v1,:v2,:v3,:v4,:v5)');
parameters.ParamByName('v1').Value:=Trim(edit1.Text);
parameters.ParamByName('v2').Value:=Trim(edit2.Text);
Parameters.ParamByName('v3').Value:=Trim(edit3.Text);
Parameters.ParamByName('v4').Value:=datetostr(datetimepicker1.Date);
parameters.ParamByName('v5').Value:=Trim(edit5.Text);
{ Sql.Add('insert into input1 (inputno,name,amount,date,memo) values (:v1,:v2,:v3,:v4,:v5)');
Parameters.ParamByName('v1').Value:=edit1.Text;
Parameters.ParamByName('v2').Value:=Edit2.Text;
Parameters.ParamByName('v3').Value:=edit3.Text;
Parameters.ParamByName('v4').Value:=Datetostr(Datetimepicker1.Date);
Parameters.ParamByName('v5').Value:=Edit5.Text; }
Try
Showmessage(sql.Text);
execsql;
Except
showmessage('SORRY,有错误发生,请重新尝试');
end;

错误提示:Project Project1.exe raised exception class EOleException with message'insert into 语句的语法错误。'Process stopped.Ues step or run to continue.
请帮帮忙~~~~
 
With ADOQuery1 do
begin
Sql.Clear;
Sql.Add('insert into input1 (inputno,name,amount,date,memo)values(:v1,:v2,:v3,:v4,:v5)');
parameters.ParamByName('v1').Value:=Trim(edit1.Text);
parameters.ParamByName('v2').Value:=Trim(edit2.Text);
Parameters.ParamByName('v3').Value:=Trim(edit3.Text);
Parameters.ParamByName('v4').Value:=datetostr(datetimepicker1.Date);
parameters.ParamByName('v5').Value:=Trim(edit5.Text);
{ Sql.Add('insert into input1 (inputno,name,amount,date,memo) values (:v1,:v2,:v3,:v4,:v5)');
Parameters.ParamByName('v1').Value:=edit1.Text;
Parameters.ParamByName('v2').Value:=Edit2.Text;
Parameters.ParamByName('v3').Value:=edit3.Text;
Parameters.ParamByName('v4').Value:=Datetostr(Datetimepicker1.Date);
Parameters.ParamByName('v5').Value:=Edit5.Text; }
Try
Showmessage(sql.Text);
execsql;
Except
showmessage('SORRY,有错误发生,请重新尝试');
end;

错误提示:Project Project1.exe raised exception class EOleException with message'insert into 语句的语法错误。'Process stopped.Ues step or run to continue.
请帮帮忙~~~~
 
怎么没有显示,可怜我敲了半天
With ADOQuery1 do
begin
Sql.Clear;
Sql.Add('insert into input1 (inputno,name,amount,date,memo)values(:v1,:v2,:v3,:v4,:v5)');
parameters.ParamByName('v1').Value:=Trim(edit1.Text);
parameters.ParamByName('v2').Value:=Trim(edit2.Text);
Parameters.ParamByName('v3').Value:=Trim(edit3.Text);
Parameters.ParamByName('v4').Value:=datetostr(datetimepicker1.Date);
parameters.ParamByName('v5').Value:=Trim(edit5.Text);
{ Sql.Add('insert into input1 (inputno,name,amount,date,memo) values (:v1,:v2,:v3,:v4,:v5)');
Parameters.ParamByName('v1').Value:=edit1.Text;
Parameters.ParamByName('v2').Value:=Edit2.Text;
Parameters.ParamByName('v3').Value:=edit3.Text;
Parameters.ParamByName('v4').Value:=Datetostr(Datetimepicker1.Date);
Parameters.ParamByName('v5').Value:=Edit5.Text; }
Try
Showmessage(sql.Text);
execsql;
Except
showmessage('SORRY,有错误发生,请重新尝试');
end;

错误提示说 出入语法错误,
如下:
project project1.exe rasied exceptin class eoleException with message'insert into 语句的语法错误.process stopped,use step or run continue.
 
Sql.Add('insert into input1 (inputno,name,amount,date,memo)values (');
Sql.Add(' ' + Trim(edit1.Text) + ','); //整型
Sql.Add(' ''' + Trim(edit2.Text) + ''','); //字符型
Sql.Add(' ' + Trim(edit3.Text) + ','); //浮点型
Sql.Add(' ' :v4,'); //字符型
Sql.Add(' ''' + Trim(edit5.Text) + ''')'); //字符型
Parameters.ParamByName('v4').Value:=Datetimepicker1.Date;
ExecSQL;
 
把showmessage的内容粘到查询器里试一下不就知道了?
 
用的是ACCESS数据库吗?
 
amount 整形
date 时间日期
其yu 文本
数据库 access2003
 
语法有错误吗??????????????????????????????????????????????????????
 
把字符型的用QuotedStr 函数处理一下就行了..
 
duhai_lee, 是这样用吗
Quotedstr(Trim(edit1.text))
??
 
Parameters.ParamByName('v4').Value:=datetimepicker1.Date;
Parameters.ParamByName('v3').Value:=strtoint(Trim(edit3.Text));
类型应该一致吧!
 
With ADOQuery1 do
begin
Sql.Clear;

parameters.ParamByName('v1').Value:=Trim(edit1.Text);
parameters.ParamByName('v2').Value:=Trim(edit2.Text);
Parameters.ParamByName('v3').Value:=Trim(edit3.Text);
Parameters.ParamByName('v4').Value:=datetostr(datetimepicker1.Date);
parameters.ParamByName('v5').Value:=Trim(edit5.Text);
Sql.Add('insert into input1 (inputno,name,amount,date,memo)values(:v1,:v2,:v3,:v4,:v5)');
Try
Showmessage(sql.Text);
execsql;
Except
showmessage('SORRY,有错误发生,请重新尝试');
end;
 
With ADOQuery1 do
begin
Sql.Clear;
Sql.Add('insert into input1 (inputno,name,amount,date,memo)values(:v1,:v2,:v3,:v4,:v5)');
parameters.ParamByName('v1').Value:=Quotedstr(Trim(edit1.Text));
parameters.ParamByName('v2').Value:=Quotedstr(Trim(edit2.Text));
Parameters.ParamByName('v3').Value:=Quotedstr(Trim(edit3.Text));
Parameters.ParamByName('v4').Value:=Quotedstr(datetostr(datetimepicker1.Date));
parameters.ParamByName('v5').Value:=Quotedstr(Trim(edit5.Text));
Try
Showmessage(sql.Text);
execsql;
Except
showmessage('SORRY,有错误发生,请重新尝试');
end;
 
各位 不好意思 你们的建议我都试过了 都失败了

在家的时候我测试上面的句子,开始出现同样的提示,于是我怀疑是因为字段中用了name 等关键字,于是我在所有的字段后便加上1,问题消失,可是现在在单位,问题依旧~~~~

我现在真的有点摸不着头脑了
我在家的时候试验没有问题的 可是 在单位打死都出问题

希望有高手指点一下
 
With ADOQuery1 do
begin
[red]Close[/red]; //新加的
Sql.Clear;
Sql.Add('insert into input1([red][inputno],[name],[amount],[date],[memo][/red]) values(:v1,:v2,:v3,:v4,:v5)'); //修改的語句
parameters.ParamByName('v1').Value:=Quotedstr(Trim(edit1.Text));
parameters.ParamByName('v2').Value:=Quotedstr(Trim(edit2.Text));
Parameters.ParamByName('v3').Value:=Quotedstr(Trim(edit3.Text));
Parameters.ParamByName('v4').Value:=Quotedstr(datetostr(datetimepicker1.Date));
parameters.ParamByName('v5').Value:=Quotedstr(Trim(edit5.Text));
Try
Showmessage(sql.Text);
execsql;
Except
showmessage('SORRY,有错误发生,请重新尝试');
end;
[red]end;[/red] // 新加的
 
Sql.Add('insert into [input1](inputno,name,amount,date,memo) values
 
要指定参数类型:
With ADOQuery1 do
begin
Sql.Clear;
Sql.Add('insert into input1 (inputno,name,amount,date,memo)values(:v1,:v2,:v3,:v4,:v5)');
Parameters.ParamByName('v1').DataType := ftString;
parameters.ParamByName('v1').Value:=Trim(edit1.Text);
Parameters.ParamByName('v2').DataType := ftString;
parameters.ParamByName('v2').Value:=Trim(edit2.Text);
Parameters.ParamByName('v3').DataType := ftString;
Parameters.ParamByName('v3').Value:=Trim(edit3.Text);
Parameters.ParamByName('v4').DataType := ftDate;
Parameters.ParamByName('v4').Value:=datetostr(datetimepicker1.Date);
Parameters.ParamByName('v5').DataType := ftString;
parameters.ParamByName('v5').Value:=Trim(edit5.Text);
Try
Showmessage(sql.Text);
execsql;
Except
showmessage('SORRY,有错误发生,请重新尝试');
end;
 
多人接受答案了。
 
后退
顶部