Q&A

  • 전역변수
님들~~질문이 있습니다.(너무 초보적이라고 웃지 안으시길..)

Sql을 전역변수로 선언했다고 했을때
A라는 프로시저에서 어떤 값을 입력 받았다고 가정했을 때
B라는 프로시저에서 그 값을 그대로 받아 쓰려면...어떻해야 하죠?
전역 변수니까 그냥 쓰면 되나요?
저는 그냥 써 봤는데 값이 안넘오 오는 것 같아서 정확한 방법을 님들에게 구합니다.
님들~~답변 꼬~~옥 부탁드립니다..(--)(__)(--)



※제가 지금 고민하고 있는 부분입니다.

procedure TFmGateIn.BtnViewClick(Sender: TObject);
//A입니다. 특정 조건에 따라 그 값을 조회하고 있습니다.


begin
  
Screen.Cursor:=CrHourGlass;

  
   Sql:='Select * from GateI where IO = '+chr(39)+'I'+chr(39);
  
   if S1.Text<>'' then
      Begin
      Sql:=Sql+' And CntrNo Like '+chr(39)+'%'+S1.Text+'%'+chr(39);
//여기서 얻어진 Sql값을...B에서 사용하고 싶습니다.
      end;

   if S2.Text<>'' then
      Begin
      Sql:=Sql+' And ShipCode = '+chr(39)+S2.Text+chr(39);
      end;

     Dm.Query1.Active:=False;
     Dm.Query1.SQL.Clear;
     Dm.Query1.SQL.Add(Sql);
     Dm.Query1.Active:=True;

  Screen.Cursor:=CrDeFault;
//조회된 내용은 Query1을 통해 DBGrid로 보여집니다.
end;

procedure TFmGateIn.BtnDel2Click(Sender: TObject);<----B입니다~!!
begin

  if MessageDlg('자료전체를 삭제합니다'+#13+#13+
                '삭제하시겠습니까 ?',mtInformation,[mbNo,mbYes],0)=mrYes

//A에서 조회된 내용만 삭제 하고 싶습니다.
//지금 이대로 하면 전부 삭제 됩니다.
then
   Begin
    For I:=1 to Dm.GateO.RecordCount do
       Begin

           Sql:=' Delete From GateI '+
             ' Where IO ='+chr(39)+'I'+chr(39);
           Dm.Query2.Active:=False;
           Dm.Query2.Sql.Clear;
           Dm.Query2.Sql.Add(Sql);
           Dm.Query2.ExecSql;
           Dm.Query1.Refresh;

        end;
        BtnView.Click;
        MessageDlg('삭제 완료', mtInformation, [mbOK], 0);
   end;
end;
1  COMMENTS
  • Profile
    황돈기 2002.12.06 01:27

    sql 문의 where 조건문을 전역 string variable로 가지고 계시다가
    delete 문 후미에 붙이는 방법은 어떤지 몰겠네요.