怎么总提示"parameter对象被子不正确的定义,提供了不一致或不完整的信息" 应该没问题的,用asstring试试 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 好象tablename多于3个字段(id1,id2,id3)而你只插入3个字段就不行 to bumman() 我试过的,对有些表操作没问题的.try assting..... SQL.Add ('insert into tablename(id1,id2,id3,)');这句语句出错!应该这样你试试看SQL.Add ('insert into tablename(id1,id2,id3)'); 请注意SQL中字符之间的空格,要明确区分每一个字符才行。我看你的SQL拼凑起来就是一个无空格的字符串 to: webnumen你写的和我的有什么不一样?to :cobi不是空格原因,试过调试一两个小时了,搞不定这个小程序算完了(核心部分),帮忙啊,在线等....另,少了一句adoquery1.sql.clear//笔误 你有多于3个字段,你把其它的字段值用NULL表示我想就可以了你试试看 要定义类型,看我的程序 with ADOQuery1 do begin Close; SQL.Clear; SQL.Add('Select ZL, BH from JTXX '); SQL.Add('Where ZL = :p0 and BH = :p1'); Parameters[0].DataType := ftString; Parameters[0].Value := ComboBox21.Text; Parameters[1].DataType := ftInteger ; Parameters[1].Value := bh; Open; end; 要指定类型,看我的程序 with ADOQuery1 do begin Close; SQL.Clear; SQL.Add('Select ZL, BH from JTXX '); SQL.Add('Where ZL = :p0 and BH = :p1'); Parameters[0].DataType := ftString; Parameters[0].Value := ComboBox21.Text; Parameters[1].DataType := ftInteger ; Parameters[1].Value := bh; Open; end; with adouery1 do begin Close; SQL.Clear; SQL.Add ('insert into tablename(id1,id2,id3,)'); SQL.Add ('values(:val1,:val2,:val3)'); Parameters.ParamByName('val1').DataType:=ftString; Parameters.ParamByName('val1').value:=edit1.Text; Parameters.ParamByName('val2').DataType:=ftString; Parameters.ParamByName('val2').value:=edit2.Text; Parameters.ParamByName('val3').DataType:=ftString; Parameters.ParamByName('val3').value:=edit3.Text; ExecSQL; Close; SQL.Add ('select id1,id2,id3 from tablename');try Open;except showmessage('wrong'); application.Terminate;end;end; 呵呵,我想出错的原因可以是因为Edit1.text或edit2.text或edit3.text出现了空串,ADO的Parameter对象好像不允许有空串, 我也遇到过这种问题材,最后, 放弃使用参数了. 你可以改成下面的样子:with adouery1 do begin Close; SQL.Text := 'insert into tablename(id1,id2,id3) ' + 'values(''%s'',''%s'',''%s'') '; SQL.Text := format(SQL.Text,[edit1.Text,edit2.text,edit3.text]);try ExecSQL; SQL.Text := 'select id1,id2,id3 from tablename'; Open;except showmessage('wrong'); application.Terminate;end; end; 不好意思,没太仔细看。^_^如果上面的方法都不行的,再试试加个PREPARED试试 都不行呀, 呵呵......我临时建个表试验一下,代码如下,字段大于3,没有指定类型,一点问题也没有,和上面的代码一样的,怪..........//放弃,换方法with adoquery1 dobegin close; SQL.clear; sql.Add('insert into stu(学号,姓名,性别,班级) values(:id,:name,:sex,:class)'); Parameters.ParamByName('id').value:=edit1.text; Parameters.ParamByName('name').value:=edit2.text; Parameters.ParamByName('sex').value:=edit3.text; Parameters.ParamByName('class').value:=edit4.text; ExecSQL; Close; SQL.Clear; SQL.Add('select 学号,姓名,性别,班级 from stu ');try Open; Last;except showmessage('wrong');end;end; dbgrid 刷新闪屏有救吗? 请问除了CppWebBrowser还有什么控件可以显示网页吗? 这里有 PLMM 有关VCL的问题 紧张,郁闷,轻松一下吧! 请教:网络端口中的 服务端口和监控端口分别是什么意思啊?谢谢! TTable过滤的部分匹配如何能匹配中间的字符 如何屏蔽键盘的某一个按键 要分的过来 DELPHI6这里有下载! 大家看看,我的机器是不是中了木马 一个关于TREEVIEW的问题
我试过的,对有些表操作没问题的.
try
assting.....
SQL.Add ('insert into tablename(id1,id2,id3)');
我看你的SQL拼凑起来就是一个无空格的字符串
to :cobi不是空格原因,试过
调试一两个小时了,搞不定这个小程序算完了(核心部分),帮忙啊,在线等....
另,少了一句adoquery1.sql.clear//笔误
你试试看
begin
Close;
SQL.Clear;
SQL.Add('Select ZL, BH from JTXX ');
SQL.Add('Where ZL = :p0 and BH = :p1');
Parameters[0].DataType := ftString;
Parameters[0].Value := ComboBox21.Text;
Parameters[1].DataType := ftInteger ;
Parameters[1].Value := bh;
Open;
end;
begin
Close;
SQL.Clear;
SQL.Add('Select ZL, BH from JTXX ');
SQL.Add('Where ZL = :p0 and BH = :p1');
Parameters[0].DataType := ftString;
Parameters[0].Value := ComboBox21.Text;
Parameters[1].DataType := ftInteger ;
Parameters[1].Value := bh;
Open;
end;
begin
Close;
SQL.Clear;
SQL.Add ('insert into tablename(id1,id2,id3,)');
SQL.Add ('values(:val1,:val2,:val3)');
Parameters.ParamByName('val1').DataType:=ftString;
Parameters.ParamByName('val1').value:=edit1.Text;
Parameters.ParamByName('val2').DataType:=ftString;
Parameters.ParamByName('val2').value:=edit2.Text;
Parameters.ParamByName('val3').DataType:=ftString;
Parameters.ParamByName('val3').value:=edit3.Text;
ExecSQL; Close;
SQL.Add ('select id1,id2,id3 from tablename');
try
Open;
except
showmessage('wrong');
application.Terminate;
end;
end;
begin
Close;
SQL.Text := 'insert into tablename(id1,id2,id3) '
+ 'values(''%s'',''%s'',''%s'') ';
SQL.Text := format(SQL.Text,[edit1.Text,edit2.text,edit3.text]);try ExecSQL; SQL.Text := 'select id1,id2,id3 from tablename';
Open;
except
showmessage('wrong');
application.Terminate;
end;
end;
我临时建个表试验一下,代码如下,字段大于3,没有指定类型,一点问题也没有,和上面的代码一样的,怪..........
//放弃,换方法
with adoquery1 do
begin
close;
SQL.clear;
sql.Add('insert into stu(学号,姓名,性别,班级) values(:id,:name,:sex,:class)');
Parameters.ParamByName('id').value:=edit1.text;
Parameters.ParamByName('name').value:=edit2.text;
Parameters.ParamByName('sex').value:=edit3.text;
Parameters.ParamByName('class').value:=edit4.text;
ExecSQL;
Close;
SQL.Clear;
SQL.Add('select 学号,姓名,性别,班级 from stu ');
try
Open;
Last;
except
showmessage('wrong');
end;
end;