Q&A

  • 만들어진 문장을 자르는 방법을 알고 싶습니다.
제가 문자조합을 하여 아래와 같은 문장을 만들었습니다.

id like '%ddd%' and mday like '%aaa%' and

이렇게 나옵니다. 그런데 마지막에 and가 자동으로 생성이 됩니다.
물론 그럼 생성안되게 하면 되지...라고 하시는분들이 계실것 같은데
for문안에 돌려서 생성되는 문장이라 어쩔수 없이 and가 항상 맨 마지막에
붙어서 나옵니다.
이렇게 생성된 문장에서 마지막에 있는 and 이 세자를 잘라주고 싶는데
어떻해 해야할지 막막하네요. 역시 델파이 초보라 한계가 느껴집니다.
고수님들의 좋은 답변 부탁드리겠습니다.
4  COMMENTS
  • Profile
    장명선 2002.03.15 20:39
    and 문장을 앞으로 해보세여 그럼 더 편해여


    for i := 1 to 10 do
    begin
        a := a + 'and ' + 필드 + ' like ' + 값;
    end;

    단 주의 할 사항은 where 조건에 처음으로 들어간다면 where이 먼저 들어가야져 그때는 if 문을 사용하여 i가 1인지 체크하시면 됩니다

    그럼 즐코 하세여

  • Profile
    공성환 2002.03.15 18:12
    다 맹근다음 짤라내도 되겠지만...
    for문을 1바퀴덜돌리고 맨마지막을 그냥 써주면 어떨까요?
    다이나믹 sql문을 맹그시는것 같은데... 쫌더 생각하면 더좋은생각이 날것같기도 하네요...


  • Profile
    나두초보!! 2002.03.15 10:31
    문장의 길이를 받아와..
    마지막 3자리만 빼면 되겠군여..

      var i : integer;
           str : string

          str := 'select 어쩌구 저쩌구.. and';
        i := length(str);
        str := copy(str, 1, i-3);

         이러면 마지막 and가 사라지겠죠..

       ㅡ.ㅡ;; 이게 싫으시면 꽁수가 있는데..

       뭐냐하면..
       가장 기본되는 필드 즉 null 값이 없는 필드를 가지고..

        str := ' where 필드 is not null ';
          for i := 0 to a do begin
            str := str+' and ..필드.';
          end;
           이런씩으로..ㅋㅋㅋㅋ

       구럼 즐푸~~
    p.s : 초보의 허접답변 이였음..

  • Profile
    이은정 2002.03.15 22:37
    var

    selcode : string;

    일경우 delete함수를 쓰면 원하는 자릿수만큼 짤라낼수 있습니다.

                    system.Delete(SelCode,length(SelCode),1);