Q&A

  • update 할 때....
안녕하세요...

질문이 두가지거든요.

첫번째.....

TQuery를 이용해서 update를 하려구 하는데...

먼저 TQuery를 이용해서 조회후에 update를 하려구 하니까...아무짓도 안하더군요..

이미 데이타셋이 열려있어서 그런건지..

왜 그런지 알려주십시요..



두번째.....

그리구요...

updatesql 컴포넌트 쓰려구 하는데 코딩으로 파라미터 값에 변화를 주고 싶거든요..

updatesql 컴포넌트를 코딩으로 구현하는 것도 꼭 좀 갈켜주세요..

1  COMMENTS
  • Profile
    아기코알라 2001.05.13 02:40
    궁그미 wrote:

    > 안녕하세요...

    > 질문이 두가지거든요.

    > 첫번째.....

    > TQuery를 이용해서 update를 하려구 하는데...

    > 먼저 TQuery를 이용해서 조회후에 update를 하려구 하니까...아무짓도 안하더군요..

    > 이미 데이타셋이 열려있어서 그런건지..

    > 왜 그런지 알려주십시요..

    >

    > 두번째.....

    > 그리구요...

    > updatesql 컴포넌트 쓰려구 하는데 코딩으로 파라미터 값에 변화를 주고 싶거든요..

    > updatesql 컴포넌트를 코딩으로 구현하는 것도 꼭 좀 갈켜주세요..



    제가 질문을 잘 이해했는지는 모르겠으나 제 나름대로 대답해보겠읍니다



    1. Query component에 RequestLive와 Cashedupdates를 True로 하시고

    2. UpdateObject에 Updatesql을 등록시키시고...

    3. UpdeateSQL을 열어 SQL문을 자동 생성 버튼을 클릭하면 됨

    4. 저장버튼을 만들어 그곳에서 저장을 코딩

    // 저장하기 버턴

    procedure TForm1.Button1Click(Sender: TObject);

    begin

    try

    with Query1 do begin

    ApplyUpdates;

    CommitUpdates;

    Close;

    Open;

    end;



    // 예외처리부분 (유일값을 갖는 필드에 중복이 있을겨우 에레 메세지 발생

    except on E:EDBEngineError do begin

    if pos('Key Violation.',E.Errors[0].Message)>0 then

    ShowMessage('중복');

    Query1.CancelUpdates;

    end;

    end;

    end;





    5. 삭제버튼을 또한 만들고 그곳에서 삭제를 실행

    procedure TForm2.Button1Click(Sender: TObject);

    begin



    with Query1 do begin

    CancelUpdates;

    Close;

    Open;

    end;

    end;



    주의 UpdateSQL에서 하나의 필드가 유일값으로 설정 되어 있으면 그 필드는 유일한 값을

    가져야 하고 만약 같은 값을 가지면 에러가 납니다.

    그런 에러 처리는 "예외처리"를 검색해보시면 됩니다.



    " UpdateSQL "로 검색해보시면 더 많은 정보가 있읍니다



    부족한 답변이나마 도움이 되셨으면.....

    즐거운 주말 되십시요...