님들~~질문이 있습니다.(너무 초보적이라고 웃지 안으시길..)
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;
sql 문의 where 조건문을 전역 string variable로 가지고 계시다가
delete 문 후미에 붙이는 방법은 어떤지 몰겠네요.