Q&A

  • update!!!
paradox db이구요 sql을 사용해서 insert, update, delete를 하고 있습니다..
그런데 db설계를 최적화한다고 해서 했는데 한가지 문제 발생했습니다...
어느 검색조건에 의해 하나의 필드의 내용을 update해야 하는데 update에서는
select처럼 알리아스가 통하지 않네요...
특정필드에 대해 2개이상의 화일내에서 검색조건에 맞는 내용을 모두 update
하는 방법이 없나요...
아래의 문장같이 했을때 에러가 생기는데 이것을 효과적으로 한느 방법을
고수님들이 가르쳐주십시요...

   SQL.Add('Update 거래처 a, 업체구분 b');
   SQL.Add('Set   a.gub1 = ''@''');
   SQL.Add('Where a.구분코드 = b.코드');
   if Edit1.Text <> '' then SQL.Add(' and b.대구분 like
                                                   ''%'+Edit1.Text+'%''');
   if Edit2.Text <> '' then SQL.Add(' and b.중구분 like
                                                   ''%'+Edit2.Text+'%''');
   if Edit3.Text <> '' then SQL.Add(' and a.상호   like
                                                   ''%'+Edit3.Text+'%''');

참고로 하나하나 돌리면서 update하는 방법은 있는데 전에 사용해보니
레코드수에 비례해 속도가 엄처 느립니다...
그래서 그방법 말고 다른 방법을 가르쳐 주시길...
또 제가 아직은 초보라 좀 상세하게 가르쳐 주셔야...^^
부탁드립니다...
3  COMMENTS
  • Profile
    배건환 2003.05.19 20:08
    MS SQL에서는 되는데 파라독스에서 그렇게 하면 안 되더라구요...

    이 방법을 사용해보시구요...

    SQL.Add('Update 거래처 ');
    SQL.Add('Set   gub1 = ''@''');
    SQL.Add('Where 구분코드 in ( select 코드 from 업체구분 ');
    SQL.Add('                     where 1=1');
    if Edit1.Text <> '' then
            SQL.Add(' and 대구분 like ''%'+Edit1.Text+'%''');
    if Edit2.Text <> '' Then
            SQL.Add(' and 중구분 like ''%'+Edit2.Text+'%'')');
    if Edit3.Text <> '' Then
            SQL.Add(' and 상호 like ''%'+Edit3.Text+'%''');

    안된다면 업체구분 테이블에서 한번 Select를 하여 나온값을 밑에 다시

    값을 전달하는 방법을 사용해보세요...

    그럼 즐코여~!
  • Profile
    이주영 2003.05.19 18:20
       SQL.Add('Update a');
       SQL.Add('Set   a.gub1 = ''@''');
       SQL.Add('From 거래처 a, 업체구분 b');
       SQL.Add('Where a.구분코드 = b.코드');
       if Edit1.Text <> '' then SQL.Add(' and b.대구분 like
                                                       ''%'+Edit1.Text+'%''');
       if Edit2.Text <> '' then SQL.Add(' and b.중구분 like
                                                       ''%'+Edit2.Text+'%''');
       if Edit3.Text <> '' then SQL.Add(' and a.상호   like
                                                       ''%'+Edit3.Text+'%''');

  • Profile
    이승근 2003.05.19 19:42
    그렇게 했는데도 에러가 나타나내요...
    수정전처럼 invalid use of keyword라는 메세지가 나타나요...
    query알리아스도 살펴봤고 혹여 syntex error도 있나 찾아봤는데
    없거던요...
    뭐가 문제인가요...
    다시 한번 답변 부탁드립니다...