F
fuxin198311
Unregistered / Unconfirmed
GUEST, unregistred user!
就是我想修改我当前选中的行的信息,当调整前的销售价及调整前的会员价为空时就往下执行 反之则执行else的后面的语句(也就是调整前的销售价及调整前的会员价不进行更新)
现在代码我跟踪发现无论调整前的销售价及调整前的会员价是空还是有值总是执行else后的语句 各位帮我看下错在那呢?
procedure Tchange_price.BitBtn1Click(Sender: TObject);
begin
with adosave do
begin
close;
sql.Clear ;
sql.Text:='select * from cgstore where SYS_ID='''+Label16.Caption+'''';
open;
showmessage(sql.text);
end;
//if adosave.RecordCount=1 then
if (adosave.FieldByName('before_xsdj').Value='')and(adosave.FieldByName('before_hyj1').Value='') then
begin
with adosave do
begin
close;
sql.Clear ;
sql.Add('update cgstore set xsdj1=:xsdj1,hyj1=:hyj1,hyj2=:hyj2,xsdj3=:xsdj3,user_name=:name,change_time=:time,memo2=:memo2,before_xsdj=:yq_xsdj,before_hyj1=:yq_hyj1 ');
sql.Add('where sys_id='''+label16.Caption+'''');
Parameters.ParamByName('xsdj1').Value:=RxCalcEdit1.Text ;
Parameters.ParamByName('hyj1').Value:=RxCalcEdit2.Text ;
Parameters.ParamByName('hyj2').Value:=RxCalcEdit3.Text ;
Parameters.ParamByName('xsdj3').Value:=RxCalcEdit4.Text ;
parameters.ParamByName('name').Value:=mainform.User1;
parameters.ParamByName('time').Value:=FormatDateTime('yyyy-mm-dd',now());
parameters.ParamByName('memo2').Value:=trim(edit1.Text);
parameters.ParamByName('yq_xsdj').Value:=strtofloat(label14.Caption) ; //调整前的销售价
parameters.ParamByName('yq_hyj1').Value:=strtofloat(label15.Caption) ; //调整前的会员价
ExecSQL ;
end;
end
else
begin
with adosave do
begin
close;
sql.Clear ;
sql.Add('update cgstore set xsdj1=:xsdj1,hyj1=:hyj1,hyj2=:hyj2,xsdj3=:xsdj3,user_name=:name,change_time=:time,memo2=:memo2 ');
sql.Add('where sys_id='''+label16.Caption+'''');
Parameters.ParamByName('xsdj1').Value:=RxCalcEdit1.Text ;
Parameters.ParamByName('hyj1').Value:=RxCalcEdit2.Text ;
Parameters.ParamByName('hyj2').Value:=RxCalcEdit3.Text ;
Parameters.ParamByName('xsdj3').Value:=RxCalcEdit4.Text ;
parameters.ParamByName('name').Value:=mainform.User1;
parameters.ParamByName('time').Value:=FormatDateTime('yyyy-mm-dd',now());
parameters.ParamByName('memo2').Value:=trim(edit1.Text);
//parameters.ParamByName('yq_xsdj').Value:=strtofloat(label14.Caption) ; //调整前的销售价
//parameters.ParamByName('yq_hyj1').Value:=strtofloat(label15.Caption) ; //调整前的会员价
ExecSQL ;
end;
end;
现在代码我跟踪发现无论调整前的销售价及调整前的会员价是空还是有值总是执行else后的语句 各位帮我看下错在那呢?
procedure Tchange_price.BitBtn1Click(Sender: TObject);
begin
with adosave do
begin
close;
sql.Clear ;
sql.Text:='select * from cgstore where SYS_ID='''+Label16.Caption+'''';
open;
showmessage(sql.text);
end;
//if adosave.RecordCount=1 then
if (adosave.FieldByName('before_xsdj').Value='')and(adosave.FieldByName('before_hyj1').Value='') then
begin
with adosave do
begin
close;
sql.Clear ;
sql.Add('update cgstore set xsdj1=:xsdj1,hyj1=:hyj1,hyj2=:hyj2,xsdj3=:xsdj3,user_name=:name,change_time=:time,memo2=:memo2,before_xsdj=:yq_xsdj,before_hyj1=:yq_hyj1 ');
sql.Add('where sys_id='''+label16.Caption+'''');
Parameters.ParamByName('xsdj1').Value:=RxCalcEdit1.Text ;
Parameters.ParamByName('hyj1').Value:=RxCalcEdit2.Text ;
Parameters.ParamByName('hyj2').Value:=RxCalcEdit3.Text ;
Parameters.ParamByName('xsdj3').Value:=RxCalcEdit4.Text ;
parameters.ParamByName('name').Value:=mainform.User1;
parameters.ParamByName('time').Value:=FormatDateTime('yyyy-mm-dd',now());
parameters.ParamByName('memo2').Value:=trim(edit1.Text);
parameters.ParamByName('yq_xsdj').Value:=strtofloat(label14.Caption) ; //调整前的销售价
parameters.ParamByName('yq_hyj1').Value:=strtofloat(label15.Caption) ; //调整前的会员价
ExecSQL ;
end;
end
else
begin
with adosave do
begin
close;
sql.Clear ;
sql.Add('update cgstore set xsdj1=:xsdj1,hyj1=:hyj1,hyj2=:hyj2,xsdj3=:xsdj3,user_name=:name,change_time=:time,memo2=:memo2 ');
sql.Add('where sys_id='''+label16.Caption+'''');
Parameters.ParamByName('xsdj1').Value:=RxCalcEdit1.Text ;
Parameters.ParamByName('hyj1').Value:=RxCalcEdit2.Text ;
Parameters.ParamByName('hyj2').Value:=RxCalcEdit3.Text ;
Parameters.ParamByName('xsdj3').Value:=RxCalcEdit4.Text ;
parameters.ParamByName('name').Value:=mainform.User1;
parameters.ParamByName('time').Value:=FormatDateTime('yyyy-mm-dd',now());
parameters.ParamByName('memo2').Value:=trim(edit1.Text);
//parameters.ParamByName('yq_xsdj').Value:=strtofloat(label14.Caption) ; //调整前的销售价
//parameters.ParamByName('yq_hyj1').Value:=strtofloat(label15.Caption) ; //调整前的会员价
ExecSQL ;
end;
end;