<!--CodeS-->
procedure TfrmIlbo.btnPreviewClick(Sender: TObject);
var
TempString1,TempString2 : string;
TempValue1, TempValue2, TempValue3, TempValue4 : Double;
i, j : integer;
begin
i := 0;
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 <> TempString2 then
begin
TempString2 := DbGrid1.Fields[0].Value ;
SQL.Clear;
==> SQL.Add('Insert into TempTbl ');
==> SQL.Add('(CustCode,CustAmt,CustCostAmt) ');
==> SQL.Add('Values (TempString2,:TempValue1,:TempValue2) ');
==> ParamByName(TempValue1).AsFloat := StrToFloat(DbGrid1.Fields[1].Value);
==> ParamByName(TempValue2).AsFloat := StrToFloat(DbGrid1.Fields[2].Value);
ExecSQL;
Next;
end
else
begin
Next;
end;
inc(i);
end; // While end
end; // With end
frmIlboPrint.QrIlboPrint.Preview;
end; // Procedure end
<!--CodeE-->
답변을 받았는데 하나를 해결하니 또 다른 문제에..봉착...ㅠㅠ
Sql Explorer에서는 3개의 값만으로 나머지 값을 비우고도 들어가서
위와 같이 Insert into를 하였습니다
매개변수가 적다고 나오네요..
질답란을 살펴보았는데 형이 틀리거나 아니면 필드가 틀리다고 하시는데
임시테이블에 형들하고 밑에 변수형들하고 소스대로 맞게 한듯 한데..(?)
제가 지식이 부족해서링..
클리퍼로 했을때는 좀 맘이 편해서 그런가 다 보이는것 같더니
델파이로 오니까 알던것도 헷갈리네요...ㅠㅠ
오! 클리퍼! 오래전에 다루었던 것인데 지금도 가능한가요?