Q&A

  • Query문의 특정필드 합을 구할려고 합니다.
제가 워낙 초보라서.......



다름이 아니오라

아래의 문장에서 제가 Query문의 특정 필드의 합을 구하여 화면에

뿌려줄려고 하나 잘되지 않네요...



어떻게 고쳐야 하는지 아시는 분은 자세히 설명좀 해주세요...



에러 메세지 : [Error]A_1.pas[208]; incompatible types: 'Strin' and 'integer'



type

BillingQueryUSE_SUMTOT: TFloatField;





procedure TA_1Form.BitBtn1Click(Sender: TObject);

var

BSumTot : integer; <<-- 합의 변수



begin

BSumTot := 0; <<--변수의 초기화

Screen.Cursor := crHourglass;

if (Length(Edit2.Text) < 6 ) then begin

ShowMessage ('청구년월을 정확히 입력하세요!');

Screen.Cursor := crDefault;

Exit;

end else begin

with BillingQuery do begin

Close;

Sql.Clear;

if (Length(ComboBox1.Text) <= 0 ) then begin

if (Length(ComboBox2.Text) <= 0 ) then begin

if (Length(Edit1.Text) <= 0 ) then begin

Sql.Add('select * from eos_billing_pay where use_ym

= ' +

''''+ edit2.text +'''');

end else begin // 업체선택X, 유저그룹X, id O

Sql.Add('select * from eos_billing_pay where

user_code = ' +

''''+ edit1.text +'''' +

' and use_ym = ' + ''''+ Edit2.text +'''');

end;

end else begin

if (Length(Edit1.Text) <= 0 ) then begin

Sql.Add('select * from eos_billing_pay where

USER_GROUP = ' +

''''+ ComboBox2.text +'''' +

' and use_ym = ' + ''''+ Edit2.text +'''');

end else begin

Sql.Add('select * from eos_billing_pay where

user_group = ' +

''''+ ComboBox2.text +'''' +

'and USER_CODE = ' + ''''+ Edit1.text +'''' +

' and use_ym = ' + ''''+ Edit2.text +'''');

end;

end;

end else begin

if (Length(ComboBox2.Text) <= 0 ) then begin

if (Length(Edit1.Text) <= 0 ) then begin

Sql.Add('select * from eos_billing_pay where

group_code = ' +

''''+ ComboBox1.text +'''' +

' and use_ym = ' + ''''+ Edit2.text +'''');

end else begin

Sql.Add('select * from eos_billing_pay where

group_code = ' +

''''+ ComboBox1.text +'''' +

'and USER_CODE = ' + ''''+ Edit1.text +'''' +

' and use_ym = ' + ''''+ Edit2.text +'''');

end;

end else begin

if (Length(Edit1.Text) <= 0 ) then begin

Sql.Add('select * from eos_billing_pay where

group_code = ' +

''''+ ComboBox1.text +'''' +

'and user_group = ' + ''''+ ComboBox2.text +'''' +

' and use_ym = ' + ''''+ Edit2.text +'''');

end else begin

Sql.Add('select * from eos_billing_pay where

user_group = ' +

''''+ ComboBox2.text +'''' +

'and user_group = ' + ''''+ ComboBox2.text +'''' +

'and USER_CODE = ' + ''''+ Edit1.text +'''' +

' and use_ym = ' + ''''+ Edit2.text +'''');

end;

end;

end;

BSumTot := BSumTot + billingQuery.FieldByName <<-- Query 필드의 합

('use_sumtot').AsInteger; <<-- 여기서 틀린것 같은데?

open;

Showmessage ('BSumTot')

// MstQuery.active := True;

end;

end;

Screen.Cursor := crDefault;

Edit3.Text := Format('%5d', [billingQuery.RecordCount]) ;

Edit4.Text := BSumTot; << edit콤보에 입력 (여기가 208라인)

if (BillingQuery.RecordCount = 0) then ShowMessage('조회된 데이터가 한건도 존재하지 않습니다.');



end;



1  COMMENTS
  • Profile
    뿌요 2000.12.27 21:18
    208line) Edit4.Text := BSumTot;

    text는 string값을 반영하는데 BSumtot는 integer형이라 맞지않는다는 뜻입니다.



    Edit4.Text := IntToStr(BSumTot);

    String형으로 변환해서 넣으면 됩니다... 즐코..^.*







    짝돌이 wrote:

    > 제가 워낙 초보라서.......

    >

    > 다름이 아니오라

    > 아래의 문장에서 제가 Query문의 특정 필드의 합을 구하여 화면에

    > 뿌려줄려고 하나 잘되지 않네요...

    >

    > 어떻게 고쳐야 하는지 아시는 분은 자세히 설명좀 해주세요...

    >

    > 에러 메세지 : [Error]A_1.pas[208]; incompatible types: 'Strin' and 'integer'

    >

    > type

    > BillingQueryUSE_SUMTOT: TFloatField;

    >

    >

    > procedure TA_1Form.BitBtn1Click(Sender: TObject);

    > var

    > BSumTot : integer; <<-- 합의 변수

    >

    > begin

    > BSumTot := 0; <<--변수의 초기화

    > Screen.Cursor := crHourglass;

    > if (Length(Edit2.Text) < 6 ) then begin

    > ShowMessage ('청구년월을 정확히 입력하세요!');

    > Screen.Cursor := crDefault;

    > Exit;

    > end else begin

    > with BillingQuery do begin

    > Close;

    > Sql.Clear;

    > if (Length(ComboBox1.Text) <= 0 ) then begin

    > if (Length(ComboBox2.Text) <= 0 ) then begin

    > if (Length(Edit1.Text) <= 0 ) then begin

    > Sql.Add('select * from eos_billing_pay where use_ym

    > = ' +

    > ''''+ edit2.text +'''');

    > end else begin // 업체선택X, 유저그룹X, id O

    > Sql.Add('select * from eos_billing_pay where

    > user_code = ' +

    > ''''+ edit1.text +'''' +

    > ' and use_ym = ' + ''''+ Edit2.text +'''');

    > end;

    > end else begin

    > if (Length(Edit1.Text) <= 0 ) then begin

    > Sql.Add('select * from eos_billing_pay where

    > USER_GROUP = ' +

    > ''''+ ComboBox2.text +'''' +

    > ' and use_ym = ' + ''''+ Edit2.text +'''');

    > end else begin

    > Sql.Add('select * from eos_billing_pay where

    > user_group = ' +

    > ''''+ ComboBox2.text +'''' +

    > 'and USER_CODE = ' + ''''+ Edit1.text +'''' +

    > ' and use_ym = ' + ''''+ Edit2.text +'''');

    > end;

    > end;

    > end else begin

    > if (Length(ComboBox2.Text) <= 0 ) then begin

    > if (Length(Edit1.Text) <= 0 ) then begin

    > Sql.Add('select * from eos_billing_pay where

    > group_code = ' +

    > ''''+ ComboBox1.text +'''' +

    > ' and use_ym = ' + ''''+ Edit2.text +'''');

    > end else begin

    > Sql.Add('select * from eos_billing_pay where

    > group_code = ' +

    > ''''+ ComboBox1.text +'''' +

    > 'and USER_CODE = ' + ''''+ Edit1.text +'''' +

    > ' and use_ym = ' + ''''+ Edit2.text +'''');

    > end;

    > end else begin

    > if (Length(Edit1.Text) <= 0 ) then begin

    > Sql.Add('select * from eos_billing_pay where

    > group_code = ' +

    > ''''+ ComboBox1.text +'''' +

    > 'and user_group = ' + ''''+ ComboBox2.text +'''' +

    > ' and use_ym = ' + ''''+ Edit2.text +'''');

    > end else begin

    > Sql.Add('select * from eos_billing_pay where

    > user_group = ' +

    > ''''+ ComboBox2.text +'''' +

    > 'and user_group = ' + ''''+ ComboBox2.text +'''' +

    > 'and USER_CODE = ' + ''''+ Edit1.text +'''' +

    > ' and use_ym = ' + ''''+ Edit2.text +'''');

    > end;

    > end;

    > end;

    > BSumTot := BSumTot + billingQuery.FieldByName <<-- Query 필드의 합

    > ('use_sumtot').AsInteger; <<-- 여기서 틀린것 같은데?

    > open;

    > Showmessage ('BSumTot')

    > // MstQuery.active := True;

    > end;

    > end;

    > Screen.Cursor := crDefault;

    > Edit3.Text := Format('%5d', [billingQuery.RecordCount]) ;

    > Edit4.Text := BSumTot; << edit콤보에 입력 (여기가 208라인)

    > if (BillingQuery.RecordCount = 0) then ShowMessage('조회된 데이터가 한건도 존재하지 않습니다.');

    >

    > end;

    >