<!--CodeS-->
With Query1 do begin
if HavingTbl('Temptbl') <> -1 then
begin
Close;
SQL.Clear;
SQL.Add('drop table Temptbl');
ExecSQL;
end;
// if begin end
Close;
SQL.Clear;
SQL.Add('Create table Temptbl(CustName Char(20),');
SQL.Add('CustCode Char(05),');
SQL.Add('CustAmt Double,');
SQL.Add('CustCostAmt Double,');
SQL.Add('CustBeforeDebt Double,');
SQL.Add('CustTodayDebt Double)');
ExecSQL;
Close;
SQL.Clear;
SQL.Add('Select Sa_Cust,Sa_Amt,Sa_CostAmt ');
SQL.Add('from Sa010sm ');
SQL.Add('Where Sa_Year = :edtDate and Sa_Jpgbn like :JpCheck ');
SQL.Add('Order by Sa_Cust ');
ParamByName('edtDate').AsString := edtYear.Text + edtMonth.Text + edtDay.Text;
ParamByName('jpCheck').AsString := '0';
Open; // 조회시에는 Open, 삭제,업데이트시에는 Exec
While i < RecordCount-1 do
begin
if DbGrid1.Fields[0].Value <> TempString1 then
begin
TempString1 := DbGrid1.Fields[0].Value ;
TempString2 := DbGrid1.Fields[1].Value ;
TempString3 := DbGrid1.Fields[2].Value ;
ShowMessage(Tempstring1 + ' ' + TempString3);
====>SQL.Add('Insert into TempTbl(CustCode,CustAmt,CustCostAmt) Values (TempString1,TempString2,TempString3)');
ExecSQL;
Query1.Next;
end // if end
else
begin
Query1.Next;
end; // if else end
inc(i);
end;
end; // With begin end
<!--CodeS-->
위의 임시테이블에 DbGrid의 내용을 Insert할려고 하는데
'Query1:Cannot perform this operation on a closed dataset' 이라고 메세지가 나오면서
빠지네요..
===>부분에서 어케 해야 할지...ㅠㅠ
좀 고수님들의 조언좀 부탁합니다..
else일때는 업데이트문을 쓸라고 비워 놓았구요..
insert문하고 execsql을 제외하면 showmessage로 확인해본결과 돌아가거든요..
임시테이블에 넣을려고 할때 에러가 나는거 같은데..
DB는 MS Access이고 델파이7입니다
델파이초보의 애타는 맘을 고수님들이 해결좀...^^
SQL.clear;