我有两个数据表:
表1:mcb————ADOQuery1
MCBM MC
001 煤炭
002 钢材
003 木材表二:RKB——ADOTABLE1
ID MCBM SL
我如果要在程序中将mcb的mcbm字段的值 写入RKB的MCBM字段中,如下程序为什么写不上??
with adotable1 do begin
open;
append;
with ADOQuery1 do begin
close;
sql.Clear ;
sql.Add('select * from mcb where mc=:mc');
ADOQuery1.Parameters.ParamByName('mc').Value:= MC_DBCombox.Text ;
open ;
first;
adotable1.Fields.FieldByName('mcbm').AsString:= adoquery1.fieldbyname('mcbm').AsString ;
end ;
post;
end;
程序运行中也不报错,但是就是写不进RKB表中,我发现是 “adoquery1.fieldbyname('mcbm').AsString ;”这一句代码没有取到mcb表中的MCBM字段的值,请问这是为什么??
表1:mcb————ADOQuery1
MCBM MC
001 煤炭
002 钢材
003 木材表二:RKB——ADOTABLE1
ID MCBM SL
我如果要在程序中将mcb的mcbm字段的值 写入RKB的MCBM字段中,如下程序为什么写不上??
with adotable1 do begin
open;
append;
with ADOQuery1 do begin
close;
sql.Clear ;
sql.Add('select * from mcb where mc=:mc');
ADOQuery1.Parameters.ParamByName('mc').Value:= MC_DBCombox.Text ;
open ;
first;
adotable1.Fields.FieldByName('mcbm').AsString:= adoquery1.fieldbyname('mcbm').AsString ;
end ;
post;
end;
程序运行中也不报错,但是就是写不进RKB表中,我发现是 “adoquery1.fieldbyname('mcbm').AsString ;”这一句代码没有取到mcb表中的MCBM字段的值,请问这是为什么??
看看有无查询的结果
另外,正如上面的虾哥们所述,你用个 常量试试看,如果能提交,说明是你的查询里根本就没数值
close;
sql.Clear ;
sql.Add('select * from mcb where mc=:mc');
ADOQuery1.Parameters.ParamByName('mc').Value:= MC_DBCombox.Text ;
open ;那就主要看这一段,单步跟踪,看看你的adoquery1.sql.text究竟是什么?
first;
adotable1.edit; //<--这里加入
adotable1.Fields.FieldByName('mcbm').AsString:= adoquery1.fieldbyname('mcbm').AsString ;
adotable1.post;//加入
end ;
post;<--没有编辑不需要post,应删除。
//整理一下吧!你的思路有点乱。
adotable1.Fields.FieldByName('mcbm').AsString:= adoquery1.fieldbyname('mcbm').AsString ;这个句子本身有错吗???如果没有错,那就是MC_DBCOMBOX没有取到值了,是这样的吗??
用两个WITH有什么隐患吗??我是初学DELPHI,会问一些很菜的问题,还请大家多多帮忙!!我在这里十分感谢大家!!!
我觉得这句sql有点问题
是不是应该 'select * from mcb where mc='''+ mc + ''''
后面这个mc是个变量还是字段?
你用的是什么数据库?
他是用的参数访问形式