안녕하세요
저희는 WIN_NT4.0에서 MS-SQL7.0과 DELPHI4를 사용중입니다.
1개의 DATABASE에 테이블이 약 200개정도가 있거든요.
델파이에서 TTable컴포넌트와 DBEdit컴포넌트를 사용하여서 자료를 입.출력. 삭제등의 작업을 하고 있어요. 그런데 아주 가끔씩 TTable컴포넌트로 해당 레코드를 삭제시, 또는 입력시에
Project Project1.exe raised exception class EDBEngineError with message 'Couldn't perform the edit because another user changed the record. Process stopped. Use Step or Run to continue.
라는 에라가 발생하면서 레코드의 삭제가 되질 않거든요.
이럴땐 SQL-Server에서 Query Analyzer로 SQL문장을 써서 삭제를 하면 삭제가 됨니다.
또는 델파이에서 TTable컴포넌트가 아닌 TQuery컴포넌트로 삭제를 하면 삭제가 되거든요.
이러한 에라가 발생하는 이유를 알고싶거든요...
> 안녕하세요
>
> 저희는 WIN_NT4.0에서 MS-SQL7.0과 DELPHI4를 사용중입니다.
> 1개의 DATABASE에 테이블이 약 200개정도가 있거든요.
> 델파이에서 TTable컴포넌트와 DBEdit컴포넌트를 사용하여서 자료를 입.출력. 삭제등의 작업을 하고 있어요. 그런데 아주 가끔씩 TTable컴포넌트로 해당 레코드를 삭제시, 또는 입력시에
>
> Project Project1.exe raised exception class EDBEngineError with message 'Couldn't perform the edit because another user changed the record. Process stopped. Use Step or Run to continue.
>
> 라는 에라가 발생하면서 레코드의 삭제가 되질 않거든요.
> 이럴땐 SQL-Server에서 Query Analyzer로 SQL문장을 써서 삭제를 하면 삭제가 됨니다.
> 또는 델파이에서 TTable컴포넌트가 아닌 TQuery컴포넌트로 삭제를 하면 삭제가 되거든요.
>
> 이러한 에라가 발생하는 이유를 알고싶거든요...
PARADOX를 네트워크 드라이브로 공유하여 사용한다면 위와 같은 메시지를
만나는건 흔한 일이지만 SQL server를 사용할지라도 사용자가 하나일 경우도
발생할 가능성이 있습니다
어디선가 본건데 SQL server와 TTable 또는 live TQuery 의 사용은 자제하라는
충고도 있던데...
다음과 같은 경우에도 위와 같은 에러를 만날 수 있습니다
필드의 값들을 바꾼 후에 post 를 하게되면 BDE는 그 레코드의 원본을
찾게 되는데 만약 사용자가 key field(primary) 를 바꾸었다면 원본을 찾을 수
없는 상황이 됩니다. 사용자에게 키필드를 수정하지 못하도록 해야겠죠
이런 에러는 Borland technical support 를 찾아보시면 있을법도 합니다