Q&A

  • 아래와 같이 코딩을 했는데요 결과가 안넘어오네요
select 문의 where 절 조건에서

where 변수1 = 변수2;

이런식으로 조회를 할려고 합니다.
그러니깐.. 변수 1은 칼럼의 이름이 되겠지요.
조회가 잘 안되네요. 버그좀 잡아 주세요.

제가 짜본 코드는 아래와 같습니다.
tqery 를 사용했구요.

읽어 주셔서 감사 합니다



procedure TForm3.Button4Click(Sender: TObject);

var
val01 : string;


begin
        if cbx02.text='이름' then

        val01:='name'
        else if cbx02.text='국적' then
        val01:='country'
        else if cbx02.text='신용등급' then
        val01:='credit_rating'
        else if cbx02.text='도시' then
        val01:='city'
        else if cbx02.text='담당영업직원' then
        val01:='sales_rep_id'
        else
        showmessage('조건을 선택해 주세요');



        DM.qry01.close;
        DM.qry01.SQL.Clear;
        DM.qry01.SQL.Add('select * from s_customer where :valu03 = :valu02');

        DM.qry01.Params[0].value := val01;
        
        DM.qry01.Parambyname('valu02').asstring:=Edit8.text;
        
         DM.qry01.open;
        DBGrid1.datasource:=DM.DS1;



end;
3  COMMENTS
  • Profile
    강정구 2002.09.28 08:15


    with   DM.qry01   do begin
        close;
         SQL.text := ''select * from s_customer where '+val01+ '='+Edit8.text;
        open;
      end;  //  with의 end


    이렇게 하면 될꺼 같습니다만 파람을꼭 쓰셔야 되면 할수 없고요

  • Profile
    강정구 2002.09.28 08:18
    with   DM.qry01   do begin
        close;
         SQL.text := 'select * from s_customer where '+val01+ '='+Edit8.text;
        open;
      end;  //  with의 end

    죄송합니다 위에꺼는 삭제 해 주시고요...홀따옴표가 하나더 들어 갔군요...쩝
  • Profile
    이태원 2002.09.28 10:11
    님이 주신 힌트로 코드를 완성 하였습니다.

    DM.qry01.close;
            DM.qry01.SQL.Clear;
            DM.qry01.SQL.Add('select * from s_customer where '+val01+' = :valu02');

            {DM.qry01.Params[0].value := val01;}
            showmessage(val01);
            DM.qry01.Parambyname('valu02').asstring:=Edit8.text;
            

                    DM.qry01.open;
                    DBGrid1.datasource:=DM.DS1;


    요렇게 바꾸니깐 되네요..ㅋㅋ

    그런데 제가 내공이 부족 해서 그런지 님께서 가르쳐 주신 데로 하니깐
    컬럼 명이 유효하지 않다는 오라클 에러가 발생 하거든요
    제가 잘 못 사용해서 그런가요?