adoquery向数据库中插入数据的问题(100分)

  • 主题发起人 主题发起人 fastrunner
  • 开始时间 开始时间
F

fastrunner

Unregistered / Unconfirmed
GUEST, unregistred user!
adoQuery1.close;
adoquery1.sql.clear;
adoquery1.open;
adoquery1.SQL.Add('Insert into mail(spostcode,saddress,sname,sphone,jaddress,jname,jpostcode,jphone,zjmc,zjhm,fzjg,bghm,jsjhm,nzhw,bjje,zl,dj,bjf,ghf,gj,rq)');
adoquery1.sql.add('values(:spostcode,:saddress,:sname,:sphone,:jaddress,:jname,:jpostcode,:jphone,:zjmc,:zjhm,:fzjg,:bghm,:jsjhm,:nzhw,:bjje,:zl,:dj,:bjf,:ghf,:gj,:rq)');
ADOQuery1.Parameters.ParamByName('spostcode').value:=combobox1.text;
……
但是只能插入第一个值,后面的二十个却不能插入,并且提示出错:数据类型不匹配。
但是我查了很多次,fieldname都没有写错,请问是为什么。
 
看起来怪怪的,你把OPEN放到SQL.ADD后面先。
 
adoquery1.open已经被注释掉了的。
 
adoquery1.Excute
 
参数值与表中字段类型不匹配
 
哈哈哈哈,加分吧!
adoquery1.Active:=True;
adoQuery1.close;
adoquery1.sql.clear;
adoquery1.SQL.Add('Insert into originalHistoryTalbe(Realdatatime,chanelvalue1)');
adoquery1.sql.add('values(:s1,:s2)');
ADOQuery1.Parameters.ParamByName('s1').value:='99-8-7';
ADOQuery1.Parameters.ParamByName('s2').value:=3;
adoquery1.ExecSQL;


Open是需要返回一个记录集的,ExecSql是执行上述语句!
 
可能我说的不太清楚。我打的时候也有些错误。我的意思是这样的:
我用adoquery插入记录。
adoquery1.parameters.parambyname('spostcode').value:=combobox1.text;
adoquery1.parameters.parambyname('saddress').value:=edit1.text;
第一句没有事情,第二句就出错,说什么数据类型不匹配,把edit1.text
换成combobox2.text就没有事情了。
但是数据库中spostcode,saddress都是相同的text文本类型,没有理由edit.text
不行的。
还请大侠指点。
 
不会吧,绝对没有问题的!(怎么会有问题呢!)
adoquery1.Active:=True;
adoQuery1.close;
adoquery1.sql.clear;
adoquery1.SQL.Add('Insert into example(s1,s2)');
adoquery1.sql.add('values(:w1,:w2)');
ADOQuery1.Parameters.ParamByName('w1').value:=Edit1.Text;
ADOQuery1.Parameters.ParamByName('w2').value:=Edit2.Text;
Adoquery1.ExecSQL;

你重新创建一个工程,再试一下!
 
你重点检查一下时间字段参数值。
 
问题昨天已经解决,但是不是上述的问题,我用了另外一种方法才解决的了,不知道是我delphi
的问题还是什么,sql.add的方法好像行不通,只好用sql.text:=''。
高兴之余,想发分。
 
多人接受答案了。
 
后退
顶部