Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[6952] [답변] 쌔피/ TQuery1 에서 필드값 변경하려면
쌔피 [ ] 791 읽음    2000-01-13 15:55
우선 FREIMANN님의 빠른 답변에 감사드립니다.
그러나 분명히 제가 처음엔 되었다고 말씀드렸는데...

결론은 됩니다.
그러나 안됩니다. ^^;

우선 TQuery에서 조회한 내용을 TTable에서 처럼 수정하려면
아래와 같이 하면 됩니다.

procedure TForm1.Button1Click(Sender: TObject);
begin
  if Query1.CanModify then begin
    Query1.RequestLive := True;
    Query1.Edit;
    Query1.FieldValues['Field1'] := 'Data1'; 
    Query1.Post;
  end else begin
    ShowMessage('수정할 수 없습니다');
  end;
end;

물론 이 버튼을 클릭하기전에 Query1에 데이터가 세트되어 있어야 겠죠...

그런데, 모든 Query문을 지원하는게 아니더군요.
SQL을 아래과 같이 몇가지로 보였는데

SQL1 - 'SELECT * FROM "D:\MASTER.DBF"'
SQL2 - 'SELECT * FROM "D:\MASTER.DBF" WHERE CHKUPLOAD = TRUE'
SQL3 - 'SELECT * FROM "D:\Project\DB2PS\Database\MASTER.DBF" WHERE CHKUPLOAD = TRUE ORDER BY SYMBOL ASC'

여기서 SQL1번과 SQL2번은 Query1.Edit에 의해 수정이 가능합니다.
그러나 소팅되어진 결과인 SQL3번은 수정이 되지 않습니다.
물론, 제 결과는 제가 테스트한 것에 의한 자료입니다.
      이


혹시 ODER BY 절이 들어간 것을 Edit로 변환할 수 있는 방법을 아시는 분은
제게 메일을 보내 주시면 감사하겠습니다.
메일은 ohjang@shinbiro.com 입니다.
여기에 답변으로 주셔도 좋구요...

참 수정말고 추가도 된다고 하더군요...
추가시에는 Query1.Edit 대신 Query1.Append를 사용한다고...
(제가 테스트 해 보지 않아서...)

음...
자세한 내용은 http://www.delphi.co.kr의 Q&A를 참조하세요...


+ -

관련 글 리스트
6952 [답변] 쌔피/ TQuery1 에서 필드값 변경하려면 쌔피 791 2000/01/13
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.