Q&A

  • [급]쿼리 문으로 문자 검색하는 방법 좀
where를 가지고 문자열을 검색하는데

그냥 int형은 되는데 왜 문자는 검색하면 필드이름을 찾을 수 없다느니 그런 메세지가 나오는데 왜 그러는지요

'where name = "' + Edit_Input.Text + '"'이렇게 쓰면

where name = "Edit_Input.Text"문이 되지 않는 지요!!!!!

꼭 좀 답변해주세요 제발



3  COMMENTS
  • Profile
    김형선 2000.02.12 03:42
    쿼리 문으로 문자 검색하는 방법 좀 wrote:

    > where를 가지고 문자열을 검색하는데

    > 그냥 int형은 되는데 왜 문자는 검색하면 필드이름을 찾을 수 없다느니 그런 메세지가 나오는데 왜 그러는지요

    > 'where name = "' + Edit_Input.Text + '"'이렇게 쓰면

    > where name = "Edit_Input.Text"문이 되지 않는 지요!!!!!

    > 꼭 좀 답변해주세요 제발

    >



    도움이 됐으면 합니다.



    굳이 위와 같이 string으로 연결하셔서 하실려면

    string 함수중에 QuotedStr() 이라는 함수가 있습니다.

    즉, 문장을 다시 구성하면



    'where name = ' + QuotedStr(Edit_Input.Text)



    하면 됩니다.

    string에 따옴표를 먹여주는 함수지요.



    그럼 이만...

    참고로 필드명은 예약어는 안쓰시는 것이 좋습니다.



  • Profile
    이상호 2000.02.11 10:57
    TDataSet 클래스의 ParamByName 메쏘드를 사용하면 쉽게 해결됩니다.

    예를 들어서 설명하도록 하겠습니다.



    integer형의 Age라는 필드가 30, Name 필드가 "홍길동"이라는 사람에

    대한 모든 자료를 얻는 쿼리가 있다고 합시다.

    SQL문으로 표현하면 다음과 같겠죠.



    SELECT * FROM PERSON WHERE AGE=30 AND NAME='홍길동'



    위의 쿼리문을 TQuery 컴포넌트를 이용해서 구현하면 되는 것입니다.

    폼에서 Edit1에 Age, Edit2에 Name을 입력한다고 합시다.

    그리고 쿼리 컴포넌트의 SQL 속성에 아래와 같이 지정합니다.



    SELECT * FROM PERSON WHERE AGE=:AGE AND NAME=:NAME



    :뒤에 필드명이 붙은것은 쿼리문의 파라미터입니다.

    복잡하게 SQL문을 꾸밀 필요 없이 해결할 때 알아두면 좋은

    중요하면서도 그리 어렵지 않은 방법입니다.



    이제 프로그램 코드는 다음과 같이 해주면 됩니다.



    procedure TForm1.GetPersonData;

    var

    height, weight: Integer;

    phone, addr: String;

    begin

    ......

    with Query1 do

    begin

    // 쿼리문의 WHERE 조건절의 조건을 파라미터로 입력

    ParamByName('AGE').AsInteger := StrToInt(Edit1.Text);

    ParamByName('NAME').AsString := Edit2.Text;

    Open;



    // 쿼리문의 결과를 가져옴.

    height := FieldByName('HEIGHT').AsInteger;

    weight := FieldByName('WEIGHT').AsInteger;

    phone := FieldByName('PHONE').AsString;

    addr := FieldByName('ADDR').AsString;

    Close;

    end;

    ......

    end;



    쿼리 문으로 문자 검색하는 방법 좀 wrote:

    > where를 가지고 문자열을 검색하는데

    > 그냥 int형은 되는데 왜 문자는 검색하면 필드이름을 찾을 수 없다느니 그런 메세지가 나오는데 왜 그러는지요

    > 'where name = "' + Edit_Input.Text + '"'이렇게 쓰면

    > where name = "Edit_Input.Text"문이 되지 않는 지요!!!!!

    > 꼭 좀 답변해주세요 제발

    >

  • Profile
    최원실 2000.02.11 02:15
    쿼리 문으로 문자 검색하는 방법 좀 wrote:

    > where를 가지고 문자열을 검색하는데

    > 그냥 int형은 되는데 왜 문자는 검색하면 필드이름을 찾을 수 없다느니 그런 메세지가 나오는데 왜 그러는지요

    > 'where name = "' + Edit_Input.Text + '"'이렇게 쓰면

    > where name = "Edit_Input.Text"문이 되지 않는 지요!!!!!

    > 꼭 좀 답변해주세요 제발

    >



    안녕하세요.. 윗 글을 읽어보니 델파이 내부에서 Query문을 써서 Data를 호출

    하려고 같은데 맞나요..



    그럼 Where절 다음과 같이 써보세요..



    Sql.Add('Select Id, Code'); // 보고자 하는 Data Field

    Sql.Add('From cws01'); // Table Name

    SQL.Add('Where Name = ''' + Edit1.Text + ''''); // 조건문