Q&A

  • SQL LIKE문에 대한 질문입니다.
procedure TForm1.Button1Click(Sender: TObject);

var

CDate: String;

begin

CDate := '2000-01';

with Query1 do begin

Close;

SQL.Clear;

SQL.Add('SELECT * FROM MONEY1');

SQL.Add('WHERE CURRENTDATE LIKE %:CDate%');

Params[0].asstring:=CDate;

Open;

end;

Label1.Caption := Query1.Fields[0].AsString;

end;

이렇게 했을때 LIKE문을 저렇게 쓰면 에러가 생기네요 저의 읜도는 아시겠죠?

*^^* LIKE명령에 쓰이는 뒤에 상수를 변수로 사용할때는 어떻게 해야 하나요?

답변 부탁 드립니다. 꾸벅~!

2  COMMENTS
  • Profile
    nuki 2000.01.15 09:00
    송수현 wrote:

    > procedure TForm1.Button1Click(Sender: TObject);

    > var

    > CDate: String;

    > begin

    > CDate := '2000-01';

    > with Query1 do begin

    > Close;

    > SQL.Clear;

    > SQL.Add('SELECT * FROM MONEY1');

    > SQL.Add('WHERE CURRENTDATE LIKE %:CDate%');

    > Params[0].asstring:=CDate;

    > Open;

    > end;

    > Label1.Caption := Query1.Fields[0].AsString;

    > end;

    > 이렇게 했을때 LIKE문을 저렇게 쓰면 에러가 생기네요 저의 읜도는 아시겠죠?

    > *^^* LIKE명령에 쓰이는 뒤에 상수를 변수로 사용할때는 어떻게 해야 하나요?

    > 답변 부탁 드립니다. 꾸벅~!



    이렇게 함 해보세요

    With Qeury1 do

    begin

    Close;

    Sql.Clear;

    Sql.Add (' SELECT * '+

    ' FROM MONEY1 '+

    ' WHERE CURRENTDATE LIKE '''+CDate+''' ');

    OPEN;

    if RecordCount = 0 then Exit; --> 검색한 결과가 없을 때 빠져나간다.



    end;



    전 오라클에서는 이렇게 사용하는데 다른데서는 안해봐서리 잘모르겠네요...

    한개짜리를 사용하세요 --> " 말고 ' 입니다.



  • Profile
    nuki 2000.01.16 08:00
    nuki wrote:

    > 송수현 wrote:

    > > procedure TForm1.Button1Click(Sender: TObject);

    > > var

    > > CDate: String;

    > > begin

    > > CDate := '2000-01';

    > > with Query1 do begin

    > > Close;

    > > SQL.Clear;

    > > SQL.Add('SELECT * FROM MONEY1');

    > > SQL.Add('WHERE CURRENTDATE LIKE %:CDate%');

    > > Params[0].asstring:=CDate;

    > > Open;

    > > end;

    > > Label1.Caption := Query1.Fields[0].AsString;

    > > end;

    > > 이렇게 했을때 LIKE문을 저렇게 쓰면 에러가 생기네요 저의 읜도는 아시겠죠?

    > > *^^* LIKE명령에 쓰이는 뒤에 상수를 변수로 사용할때는 어떻게 해야 하나요?

    > > 답변 부탁 드립니다. 꾸벅~!

    >

    > 이렇게 함 해보세요

    > With Qeury1 do

    > begin

    > Close;

    > Sql.Clear;

    > Sql.Add (' SELECT * '+

    > ' FROM MONEY1 '+

    > ' WHERE CURRENTDATE LIKE '''+CDate+''' ');

    > OPEN;

    > if RecordCount = 0 then Exit; --> 검색한 결과가 없을 때 빠져나간다.

    >

    > end;

    >

    > 전 오라클에서는 이렇게 사용하는데 다른데서는 안해봐서리 잘모르겠네요...

    > 한개짜리를 사용하세요 --> " 말고 ' 입니다.

    >



    죄송합니다.

    하나가 빠졌네여....

    이 부분을

    ' WHERE CURRENTDATE LIKE '''+CDate+''' ');

    이렇게 해야 합니다.

    ' WHERE CURRENTDATE LIKE '''+CDate+'%'' ');