function TfrmInput.find2:Currency;
begin
find2:=0;
with DMtongtao.ADOQrkdh do
begin
close;
sql.Clear;
sql.Add('select * from rkdhb where rkdh='''+Trim(Eddh.text)+'''');
try
open;
if not IsEmpty then
find2:=fieldbyname('Tmoney').AsCurrency;
finally
close;
end;
end;
end;function TfrmInput.find3:integer;
begin
find3:=0;
with DMtongtao.ADOQkc do
begin
close;
sql.Clear;
sql.Add('select * from kczb where P_Code='''+CmbP_code.text+'''');
try
open;
if not IsEmpty then
find3:=fieldbyname('P_Sl').AsInteger;
finally
close;
end;
end;
end;function TfrmInput.SaveAll:boolean;
var
num:integer;
dprice,Total,total1:Currency;
begin
with DMtongtao do
begin
ADOCtongtao.BeginTrans;//事务提交
try
ADOQrkdj.SQL.Text:='select * from rkdjb where 1=0';
ADOQrkdj.LockType:=ltBatchOptimistic;
ADOQrkdj.CursorType:=ctKeyset;
ADOQrkdj.Open;
ADOQkc.SQL.Text:='select * from kczb where 1=0';
ADOQkc.LockType:=ltBatchOptimistic;
ADOQkc.CursorType:=ctKeyset;
ADOQkc.Open;
if find1=0 then
begin
ADOQcpm.SQL.Text:='select * from cpmk where 1=0';
ADOQcpm.LockType:=ltBatchOptimistic;
ADOQcpm.CursorType:=ctKeyset;
ADOQcpm.Open; ADOQcpm.Append;
ADOQcpm.FieldByName('P_Code').AsString:=Trim(CmbP_code.text);
ADOQcpm.FieldByName('P_Name').AsString:=Trim(EdP_name.text);
ADOQcpm.FieldByName('P_Mode').AsString:=Trim(EdP_mode.text);
ADOQcpm.FieldByName('P_Dw').AsString:=Trim(EdP_Unit.text);
ADOQcpm.Post;
ADOQcpm.UpdateBatch;
end; ADOQrkdj.Append;
ADOQrkdj.FieldByName('rkdh').AsString:=trim(Eddh.text);
ADOQrkdj.FieldByName('jhname').AsString:=trim(EdJhName.text);
ADOQrkdj.FieldByName('P_Code').AsString:=trim(CmbP_code.text);
ADOQrkdj.FieldByName('P_name').AsString:=trim(EdP_name.text);
ADOQrkdj.FieldByName('P_mode').AsString:=trim(EdP_mode.text);
ADOQrkdj.FieldByName('jhbm').AsString:=trim(Ed_bm.text);
ADOQrkdj.FieldByName('P_sl').AsInteger:=strtoint(trim(EdP_SL.text));
num:=strtoint(trim(EdP_SL.text));
ADOQrkdj.FieldByName('P_price').AsCurrency:=strtocurr(trim(EdP_price.text));
dprice:=strtocurr(trim(EdP_price.text));
total:=num*dprice;
ADOQrkdj.Post; if find2=0 then //函数执行后查询被关闭
begin
ADOQrkdh.SQL.Text:='select * from rkdhb where 1=0';
ADOQrkdh.LockType:=ltBatchOptimistic;
ADOQrkdh.CursorType:=ctKeyset;
ADOQrkdh.Open; ADOQrkdh.Append;
ADOQrkdh.FieldByName('rkdh').AsString:=Trim(Eddh.text);
ADOQrkdh.FieldByName('jhname').AsString:=Trim(EdJhName.text);
ADOQrkdh.FieldByName('jhbm').AsString:=trim(Ed_bm.text);
ADOQrkdh.FieldByName('Tmoney').AsCurrency:=Total;
end
else
begin
ADOQrkdh.SQL.Text:='select * from rkdhb where rkdh='''+Trim(Eddh.text)+'''';
ADOQrkdh.LockType:=ltBatchOptimistic;
ADOQrkdh.CursorType:=ctKeyset;
ADOQrkdh.Open; ADOQrkdh.edit;
ADOQrkdh.fieldbyname('Tmoney').AsCurrency:=find2+total;
这上面一句不能正确执行
end;
ADOQrkdh.Post; if find3=0 then
begin
ADOQkc.SQL.Text:='select * from kczb where 1=0';
ADOQkc.LockType:=ltBatchOptimistic;
ADOQkc.CursorType:=ctKeyset;
ADOQkc.Open; ADOQkc.Append;
ADOQkc.FieldByName('P_Code').AsString:=trim(CmbP_code.text);
ADOQkc.FieldByName('P_name').AsString:=trim(EdP_name.text);
ADOQkc.FieldByName('P_mode').AsString:=trim(EdP_mode.text);
ADOQkc.FieldByName('P_sl').AsInteger:=strtoint(trim(EdP_SL.text));
ADOQkc.FieldByName('P_price').AsCurrency:=strtofloat(trim(EdP_price.text));
ADOQkc.FieldByName('P_Money').AsCurrency:=total;
end
else
begin
ADOQkc.SQL.Text:='select * from kczb where P_Code='''+CmbP_code.text+'''';
ADOQkc.LockType:=ltBatchOptimistic;
ADOQkc.CursorType:=ctKeyset;
ADOQkc.Open;
total1:=ADOQkc.FieldByName('P_Money').AsCurrency; ADOQkc.Edit; ADOQkc.FieldByName('p_sl').AsInteger:=find3+strtoint(trim(EdP_SL.text));
ADOQkc.FieldByName('P_Money').AsCurrency:=total+total1;
end; 这上面两句不能正确执行
ADOQkc.Post; ADOQkc.UpdateBatch;
ADOQrkdh.UpdateBatch;
ADOQrkdj.UpdateBatch; ADOCtongtao.CommitTrans;
result:=true;
except
ADOCtongtao.RollbackTrans;
MessageDlg('保存数据失败!',mtError,[mbOK],0);
Close;
result:=false;
end;
end;
end;
begin
find2:=0;
with DMtongtao.ADOQrkdh do
begin
close;
sql.Clear;
sql.Add('select * from rkdhb where rkdh='''+Trim(Eddh.text)+'''');
try
open;
if not IsEmpty then
find2:=fieldbyname('Tmoney').AsCurrency;
finally
close;
end;
end;
end;function TfrmInput.find3:integer;
begin
find3:=0;
with DMtongtao.ADOQkc do
begin
close;
sql.Clear;
sql.Add('select * from kczb where P_Code='''+CmbP_code.text+'''');
try
open;
if not IsEmpty then
find3:=fieldbyname('P_Sl').AsInteger;
finally
close;
end;
end;
end;function TfrmInput.SaveAll:boolean;
var
num:integer;
dprice,Total,total1:Currency;
begin
with DMtongtao do
begin
ADOCtongtao.BeginTrans;//事务提交
try
ADOQrkdj.SQL.Text:='select * from rkdjb where 1=0';
ADOQrkdj.LockType:=ltBatchOptimistic;
ADOQrkdj.CursorType:=ctKeyset;
ADOQrkdj.Open;
ADOQkc.SQL.Text:='select * from kczb where 1=0';
ADOQkc.LockType:=ltBatchOptimistic;
ADOQkc.CursorType:=ctKeyset;
ADOQkc.Open;
if find1=0 then
begin
ADOQcpm.SQL.Text:='select * from cpmk where 1=0';
ADOQcpm.LockType:=ltBatchOptimistic;
ADOQcpm.CursorType:=ctKeyset;
ADOQcpm.Open; ADOQcpm.Append;
ADOQcpm.FieldByName('P_Code').AsString:=Trim(CmbP_code.text);
ADOQcpm.FieldByName('P_Name').AsString:=Trim(EdP_name.text);
ADOQcpm.FieldByName('P_Mode').AsString:=Trim(EdP_mode.text);
ADOQcpm.FieldByName('P_Dw').AsString:=Trim(EdP_Unit.text);
ADOQcpm.Post;
ADOQcpm.UpdateBatch;
end; ADOQrkdj.Append;
ADOQrkdj.FieldByName('rkdh').AsString:=trim(Eddh.text);
ADOQrkdj.FieldByName('jhname').AsString:=trim(EdJhName.text);
ADOQrkdj.FieldByName('P_Code').AsString:=trim(CmbP_code.text);
ADOQrkdj.FieldByName('P_name').AsString:=trim(EdP_name.text);
ADOQrkdj.FieldByName('P_mode').AsString:=trim(EdP_mode.text);
ADOQrkdj.FieldByName('jhbm').AsString:=trim(Ed_bm.text);
ADOQrkdj.FieldByName('P_sl').AsInteger:=strtoint(trim(EdP_SL.text));
num:=strtoint(trim(EdP_SL.text));
ADOQrkdj.FieldByName('P_price').AsCurrency:=strtocurr(trim(EdP_price.text));
dprice:=strtocurr(trim(EdP_price.text));
total:=num*dprice;
ADOQrkdj.Post; if find2=0 then //函数执行后查询被关闭
begin
ADOQrkdh.SQL.Text:='select * from rkdhb where 1=0';
ADOQrkdh.LockType:=ltBatchOptimistic;
ADOQrkdh.CursorType:=ctKeyset;
ADOQrkdh.Open; ADOQrkdh.Append;
ADOQrkdh.FieldByName('rkdh').AsString:=Trim(Eddh.text);
ADOQrkdh.FieldByName('jhname').AsString:=Trim(EdJhName.text);
ADOQrkdh.FieldByName('jhbm').AsString:=trim(Ed_bm.text);
ADOQrkdh.FieldByName('Tmoney').AsCurrency:=Total;
end
else
begin
ADOQrkdh.SQL.Text:='select * from rkdhb where rkdh='''+Trim(Eddh.text)+'''';
ADOQrkdh.LockType:=ltBatchOptimistic;
ADOQrkdh.CursorType:=ctKeyset;
ADOQrkdh.Open; ADOQrkdh.edit;
ADOQrkdh.fieldbyname('Tmoney').AsCurrency:=find2+total;
这上面一句不能正确执行
end;
ADOQrkdh.Post; if find3=0 then
begin
ADOQkc.SQL.Text:='select * from kczb where 1=0';
ADOQkc.LockType:=ltBatchOptimistic;
ADOQkc.CursorType:=ctKeyset;
ADOQkc.Open; ADOQkc.Append;
ADOQkc.FieldByName('P_Code').AsString:=trim(CmbP_code.text);
ADOQkc.FieldByName('P_name').AsString:=trim(EdP_name.text);
ADOQkc.FieldByName('P_mode').AsString:=trim(EdP_mode.text);
ADOQkc.FieldByName('P_sl').AsInteger:=strtoint(trim(EdP_SL.text));
ADOQkc.FieldByName('P_price').AsCurrency:=strtofloat(trim(EdP_price.text));
ADOQkc.FieldByName('P_Money').AsCurrency:=total;
end
else
begin
ADOQkc.SQL.Text:='select * from kczb where P_Code='''+CmbP_code.text+'''';
ADOQkc.LockType:=ltBatchOptimistic;
ADOQkc.CursorType:=ctKeyset;
ADOQkc.Open;
total1:=ADOQkc.FieldByName('P_Money').AsCurrency; ADOQkc.Edit; ADOQkc.FieldByName('p_sl').AsInteger:=find3+strtoint(trim(EdP_SL.text));
ADOQkc.FieldByName('P_Money').AsCurrency:=total+total1;
end; 这上面两句不能正确执行
ADOQkc.Post; ADOQkc.UpdateBatch;
ADOQrkdh.UpdateBatch;
ADOQrkdj.UpdateBatch; ADOCtongtao.CommitTrans;
result:=true;
except
ADOCtongtao.RollbackTrans;
MessageDlg('保存数据失败!',mtError,[mbOK],0);
Close;
result:=false;
end;
end;
end;
解决方案 »
- treeview问题,在线等
- SPCOM/MSCOMM通信数据接收缓存/读取问题
- win2000下运行没有问题数据库程序,在win XP提示如下错误?
- 请高手帮忙看一下 DLL中传递参数的问题
- Wise Installation System9.01的打包问题
- 请问ADOQuery怎样进行事务处理?
- Delphi 6 是否BUG比较多,有什么好的解决办法没有呢?
- 真是奇怪,为什么我的form,明明已经 form.close 了,可里面的事件还在执行???
- 用sql语句如何进行时间段查询!!
- 关于字符串的菜问题
- 请教sender as 语句的用法,我的怎么产生了无限循环呢?????????????
- 如何使得程序判断鼠标停留在控件上不动的时间是多长?
比如: if ADOQrkdj.Active then ADOQrkdj.UpdateBatch;
ADOQrkdh.fieldbyname('Tmoney').AsCurrency:=find2+total;
这上面一句不能正确执行
ADOQkc.FieldByName('p_sl').AsInteger:=find3+strtoint(trim(EdP_SL.text));
ADOQkc.FieldByName('P_Money').AsCurrency:=total+total1;
end; 这上面两句不能正确执行
提示说找不到字段Tmoney,'p_sl','P_Money',但是不进入这几句代码的时候又没有这个问题,
find3里的adoqkc 已经有sql语句
你在saveall的时候并没有clear 并重新open ,所以找不到那些字段!