델파이 6에서 개발된 프로그램에서 TTable 컴퍼넌트로 되어 있는 것들이 전부 에러가 나더라구요..
넘어 올때 키라던가 인덱스 들이 않넘어 왔길래 잡아주려니.. 테이블을 다시 만들어야 한다는 메세지만 나오고.. 쩝..
그래서 새로 만들고 다시 넘기고.. 키와 인덱스 다 잡아주고..
다시 프로그램 실행하니 인덱스가 없다는 No Index currently active 에러가 나더라구요..
그래서 테이블 컴퍼넌트 프로퍼티에 있는TableName 에 dbo.GjCode 넣어줬더니.. 이젠 프로그램이 실행이 않되며
나오는 메세지가
쿼리에서 ANSI형식이 아닌 외부 조인 연산자("*=" 또는 "=*")를 사용합니다.
이 쿼리를 수정하지 않고 실행하려면 ALTER DATABASE의 ...
이라는 메세지가 출력되네요
아 참 쿼리로 바꿔서 쓰면 문제는 없어지는데.. 그 많은걸 다 바꿔 줄수도 없고.. 에고..
혹시 해결 방법 아시는분 알려주세요.. ㅠ.ㅠ
MSSQL 2000 -> 2008로는 잘 넘어가고 실행도 잘되는 거 보면.. 억세스에서 넘어가서 그런거 같긴 한데.. 이거원..
Comment 2
-
항해자™
2014.02.20 14:22
-
버즈베잇
2014.02.21 09:15
위에분 말처럼 2008R2 레거시 조인 오류 나옵니다.
-------------
쿼리에서ANSI 형식이아닌외부조인연산자("*=" 또는"=*")를사용합니다. 이쿼리를수정하지않고실행하려면저장프로시저sp_dbcmptlevel을사용하여현재 데이터베이스의호홖성수준을80 이하로설정하십시오. 가장좋은방법은ANSI 외부조인연산자(LEFT OUTER JOIN, RIGHT OUTER JOIN)를사용하여쿼리를다시작성하는것입니다. SQL Server의다음버젂에서는ANSI 형식이아닌조인연산자는역호홖성모드에서도지원되지않습니다.
-------------------
이런 메시지 나왔을 겁니다.
LEFT OUTER JOIN,RIGHT OUTER JOIN 으로 수정 해야 합니다.
이외에도 ORDER BY 절의 열 별칭 앞에 테이블 별칭을 사용 할때도 오류 나옵니다.
쿼리를 모두 수정 하기 어렵다면 db의 호환성 모드를 내려주는 방법도 ㅡ.ㅡ
시간이 들더라도 모두 표준으로 변경하시는 것을 권장해 드립니다.
ms에서 제공하는 upgrade advisor 를 제공하고 있으니, 참고하시구요,,,
그리고, 어플에 있는 쿼리들을 Stored procedure 로 분리하시는 것을 추천합니다.