안녕하세요...
질문이 두가지거든요.
첫번째.....
TQuery를 이용해서 update를 하려구 하는데...
먼저 TQuery를 이용해서 조회후에 update를 하려구 하니까...아무짓도 안하더군요..
이미 데이타셋이 열려있어서 그런건지..
왜 그런지 알려주십시요..
두번째.....
그리구요...
updatesql 컴포넌트 쓰려구 하는데 코딩으로 파라미터 값에 변화를 주고 싶거든요..
updatesql 컴포넌트를 코딩으로 구현하는 것도 꼭 좀 갈켜주세요..
> 안녕하세요...
> 질문이 두가지거든요.
> 첫번째.....
> 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 "로 검색해보시면 더 많은 정보가 있읍니다
부족한 답변이나마 도움이 되셨으면.....
즐거운 주말 되십시요...