Q&A

  • Delphi7에서 TQuery와 UpdateSQL에서 문제 발생..
OS : 비스타
버전 : Delphi7
DB : SQL Server 2005

일반 품에다 DBGrid와 DBEdit와 추가 버튼, 삭제 버튼, 확인 버튼을 올려 놓고 간단하게 코딩을 했습니다.
아.. Table 처리는 TQuery와 UpdateSQL을 연결했고요. UpdateSQL에는 Insert, Update, Delete의 내용 있고요..
TQuery에는 CachedUpdates를 TRUE로 설정 했습니다.

추가 버튼 코딩
  Query1.Insert;

삭제 버튼 코딩
  Query1.Delete;
  Query1.ApplyUpdates;

확인 버튼 코딩
  Query1.Post;
  Query1.ApplyUpdates;


DBGrid상태
COL1    COL2    COL3  COL n
A       A       A              <--- 현재 위치
B       B       B
C       C       C


1. 추가 버튼을 클릭 후, DBEdit에 Data 입력
   프라이머리 키를 포함한 일부 컬럼만 Data 입력


2. 확인 버튼 클릭, 데이타 저장
   SQL 조회를 하면 신규로 입력한 데이타는 있습니다.
   신규 Data중 입력하지 않은 컬럼의 값을 null 입니다.

   데이타 저장후 DBGrid상태  
   COL1    COL2    COL3   COL n
   1       1       1               <--- 현재 위치  
   A       A       A
   B       B       B
   C       C       C


3. 삭제 버튼 클릭 후 데이타 삭제, DBGrid에서도 삭제 데이타 없어짐. 그런데 여기서 문제 발생 합니다.
   방금전 입력한 자료를 삭제를 했는데, 바로 아래 행의 데이타도 없어졌습니다.
   SQL 조회를 하면 데이타 'A' 관련 내용은 있습니다.
   그런데, DBGrid 상태에서 삭제 된 것 처럼 보입니다.

   데이타 저장후 DBGrid상태  
   COL1    COL2    COL3 COL n
   B       B       B              <--- 삭제 후 위치
   C       C       C

여러분들중에 저와 같은 경우는 없는지요..?
무엇이 문제인지 모른겠네요... 여러분의 도움 좀 부탁드립니다.
2  COMMENTS
  • Profile
    Crazy™ 2008.07.25 00:13
    1. 데이타를 저장하시고 재조회 하신후에 삭제한번 해보세요.
    2. 데이타를 저장하시고 강제로 selectindex 를 이동시키고 삭제한번 해보세요.
    위 2가지 테스트따라 결과가 달라질거 같은데요..음 ;

    전에 비슷한 부분이 있었는데 기억이 좀 가물가물하지만 dbgrid의 bug같은 현상이었던것 같네요.
  • Profile
    Hyun 2008.07.29 02:47
    위와 같은 상황에서 DBGrid 연결만 없애고.. DBEdit로만 했습니다..

    에러는 똑같이 발생을 하네요... DBGrid의 Bug라기 보다는 BDE 버그인거 같은데...

    혹시, 이 상황을 해결 하신 분 계신가요...?

    고수 분들의 도움 부탁드립니다...