代码分析:
procedure TfrmOPSFM942.ProcessYearEndBal;
begin
FYStart := FYStart+'/'+IntTostr(FY);
FYEnd := FYEnd+'/'+IntToStr(FY+FOffSet);
if edChecked.text = '1' then begin
with qryLocal, qryLocal.SQL do begin
Close;
Clear;
Add('insert into END_BAL_AP');
Add('(FY, supplier, amount)');
Add('select '+IntToStr(FY)+', P.company, decode(B.amount,null,0,B.amount)+P.credit-P.debit');
Add('from end_bal_ap B,');
Add(' (select C.company, decode(sum(A.debitamt),null,0, sum(A.debitamt)) DEBIT,');
Add(' decode(sum(A.crdtamt),null,0,sum(A.crdtamt)) CREDIT');
Add(' from acctpay A, company C');
Add(' where A.aptdt(+) >= to_date('''+FYStart+''','''+OPS_DATEFORMAT+''') and');
Add(' A.aptdt(+) <= to_date('''+FYend+''','''+OPS_DATEFORMAT+''') and');
Add(' C.company = A.company(+) and C.supplier = ''T''');
Add('group by c.company) P');
Add('where P.company = B.supplier(+) and B.FY(+) = '+IntToStr(FY-1));
ExecSQL;
end
end
1. if edChecked.text = '1' then begin
此处为何用 ‘1’ 来判断?2. ExecSQL
A. 写入数据库,为何在后台 ORACLE8.16数据库中不会立即显示?
B. 它有没有真正写到数据库?
C. 而用post 就可立即在数据库中显示?
procedure TfrmOPSFM942.ProcessYearEndBal;
begin
FYStart := FYStart+'/'+IntTostr(FY);
FYEnd := FYEnd+'/'+IntToStr(FY+FOffSet);
if edChecked.text = '1' then begin
with qryLocal, qryLocal.SQL do begin
Close;
Clear;
Add('insert into END_BAL_AP');
Add('(FY, supplier, amount)');
Add('select '+IntToStr(FY)+', P.company, decode(B.amount,null,0,B.amount)+P.credit-P.debit');
Add('from end_bal_ap B,');
Add(' (select C.company, decode(sum(A.debitamt),null,0, sum(A.debitamt)) DEBIT,');
Add(' decode(sum(A.crdtamt),null,0,sum(A.crdtamt)) CREDIT');
Add(' from acctpay A, company C');
Add(' where A.aptdt(+) >= to_date('''+FYStart+''','''+OPS_DATEFORMAT+''') and');
Add(' A.aptdt(+) <= to_date('''+FYend+''','''+OPS_DATEFORMAT+''') and');
Add(' C.company = A.company(+) and C.supplier = ''T''');
Add('group by c.company) P');
Add('where P.company = B.supplier(+) and B.FY(+) = '+IntToStr(FY-1));
ExecSQL;
end
end
1. if edChecked.text = '1' then begin
此处为何用 ‘1’ 来判断?2. ExecSQL
A. 写入数据库,为何在后台 ORACLE8.16数据库中不会立即显示?
B. 它有没有真正写到数据库?
C. 而用post 就可立即在数据库中显示?
解决方案 »
- DELPHI WinSock UDP 求源码
- 怎么样取消setfocus?
- 用ADO直接连接Excel出现的问题,然后用DBGrid显示,但是Excel中部分单元格数据无法在DBGrid中显示,请教各位大侠是什么问题?
- 如何让98上编译的程序在2000和xp中正常运行?
- DELPHI5是不是不能在WINDOW2003上安装?
- 如何将客户端某个文件夹,连同文件一起保存到应用服务器上的某个文件夹下?
- 请问如何用delphi实现 del *.* 功能 ?
- 拖动 ListView 的 Item 时候,如何画一条水平指示线?
- 如何用SQL语句创建一个有小数字段的表,小数格式为两位小数,默认值为零(ACCESS数据库)?
- 请问各位如何安装BDE?
- 彻底的点对点通信软件。解决了MSN。OICQ等在不同的防火墙下不能语音和文件传输的问题。公开源代码!!
- 哪位高手知道WINXP下屏蔽Ctrl+Alt+Del
edChecked是什么类型的?
执行ExecSQL之后不立即显示有缓存的因素在内,在这之后执行一次UpdateBatch(arAll)就ok
了。
小学没毕业 就来搞编程,佩服!
"edChecked是什么类型的?
执行ExecSQL之后不立即显示有缓存的因素在内
在这之后执行一次UpdateBatch(arAll)就ok" 1. edChecked : TEdit;
2. UpdateBatch(arAll)是 qryLocal:TQuery) 的方法?