各位大佬:
小弟做一前台收银超市,一个FORM中有6个QUERY,requestlive:=true;但query6不能赋值不知为何,大致程序如下,请指教,THANKYOU.
begin
query6.Close;
query6.SQL.Clear;
query6.sql.add('select * from xiaoshou');
query6.Open;
query6.First;
for b11i1:=0 to query6.RecordCount-1 do
begin
b11_sl:=query6.fieldbyname('sl').asfloat;
b11_dalei:=query6.fieldbyname('dalei').AsString;
b11_spmc:=query6.fieldbyname('spmc').AsString; if b11_dalei='组合' then
begin
edit5.Text:=b11_dalei;//执行这句时,edit5为空,同时打开数据库所有的记录在'dalei'字段上都是'组合'这句本是测试所添加的
showmessage('');
query4.Close;
query4.sql.Clear;
query4.sql.Add('select * from zh where zsp_name=:sp1 ');
query4.ParamByName('sp1').AsString:=b11_dalei;
query4.Open;
query4.First;
for b11i2:=0 to query4.RecordCount-1 do
begin
b11_zhspmc:=query4.fieldbyname('dsp_name').AsString;
b11_zhdalei:=query4.fieldbyname('dsp_dalei').asstring;
b11_zhdw:=query4.fieldbyname('dsp_dw').AsFloat ;
query5.close;
query5.SQL.Clear;
query5.sql.Add('select * from price where spmc=:sp2 and daile=:da');
query5.ParamByName('da').AsString:=b11_zhdalei;
query5.Open;
b11_sl1:=query5.fieldbyname('kc_sl').AsFloat;
query5.Edit;
query5.ParamByName('kc_sl').AsFloat:=b11_sl1-(b11_zhdw*b11_sl);
query5.Post;
end;
小弟做一前台收银超市,一个FORM中有6个QUERY,requestlive:=true;但query6不能赋值不知为何,大致程序如下,请指教,THANKYOU.
begin
query6.Close;
query6.SQL.Clear;
query6.sql.add('select * from xiaoshou');
query6.Open;
query6.First;
for b11i1:=0 to query6.RecordCount-1 do
begin
b11_sl:=query6.fieldbyname('sl').asfloat;
b11_dalei:=query6.fieldbyname('dalei').AsString;
b11_spmc:=query6.fieldbyname('spmc').AsString; if b11_dalei='组合' then
begin
edit5.Text:=b11_dalei;//执行这句时,edit5为空,同时打开数据库所有的记录在'dalei'字段上都是'组合'这句本是测试所添加的
showmessage('');
query4.Close;
query4.sql.Clear;
query4.sql.Add('select * from zh where zsp_name=:sp1 ');
query4.ParamByName('sp1').AsString:=b11_dalei;
query4.Open;
query4.First;
for b11i2:=0 to query4.RecordCount-1 do
begin
b11_zhspmc:=query4.fieldbyname('dsp_name').AsString;
b11_zhdalei:=query4.fieldbyname('dsp_dalei').asstring;
b11_zhdw:=query4.fieldbyname('dsp_dw').AsFloat ;
query5.close;
query5.SQL.Clear;
query5.sql.Add('select * from price where spmc=:sp2 and daile=:da');
query5.ParamByName('da').AsString:=b11_zhdalei;
query5.Open;
b11_sl1:=query5.fieldbyname('kc_sl').AsFloat;
query5.Edit;
query5.ParamByName('kc_sl').AsFloat:=b11_sl1-(b11_zhdw*b11_sl);
query5.Post;
end;
也可以在执行这个方法时,监视SQL,找到具体执行的SQL,到数据库上执行,看看结果。
那么:if b11_dalei='组合' then
这句是不可能成立的,根本不会执行下面的代码如果:b11_dalei='组合'
那么edit5.Text肯定也等'组合'showmessage('');
改成
showmessage(edit5.Text); 看有没有for b11i1:=0 to query6.RecordCount-1 do
这种写法,最好改成下面的
while not query6.eof do