2011-02-23 4 views
1

MS SQL Server 2005를 사용하는 Windows 서버에서 ColdFusion 9를 사용하고 있습니다. 이상한 문제가 발생했습니다.ms SQL 서버 테이블 변경 후 이상한 coldfusion 오류

데이터베이스의 테이블을 쿼리하고 필요한 정보를 얻고 결과에서 개체를 작성하여 개체를 만듭니다. 그래서 내 표는 열이있는 경우 :

id 
name 
address 

나는 등 get_id(), get_name(), get_address() 등의 방법으로 개체를 만드는 오전을 모든이가 잘 작동하고 내가 그 방법을 쿼리 할 때 내가 얻을 내가 기대하는 결과.

하지만 지금 나는 테이블을 변경합니다. "도시"와 같은 새 열을 추가합니다. 모두 괜찮습니다. 객체가 여전히 인스턴스화됩니다. 그러나 이제는 새로운 열에 데이터를 입력했습니다. 이제는 내 객체 인스턴스화가 더 이상 작동하지 않습니다. 나는이 같은 일반적인 오류가 점점 오전 :

element ADDRESS is undefined in instance 

나는 여전히 cfquery 등 문 감싸 조는 cftry 태그가 통지, 그래서 사람들을 벗어. 이제이 오류가 표시됩니다.

unsupported data conversion 

그래서 데이터베이스로 이동하여 새 열을 완전히 삭제합니다. 이전과 같이 모든 것이 올바르게 작동합니다. 따라서이 테이블에 새 열을 추가하면 SQL Server에서 일종의 데이터 변환을 시도하고있는 것 같습니다. 나는 어디에서 일어날 지 표시되어있는 곳을 보지 못합니다.

도움이 될만한 도움을 주시면 감사하겠습니다.

+0

cfc가 다른 cfc를 상속했기 때문에 오류가있을 수 있습니다. –

+0

내가 옳은 대답 일 것이라고 생각되는 내용을 게시했지만, 문제의 올바른 결정을 내리기 위해서는 더 많은 정보가 필요합니다. 오류가 발생하는 행의 코드는 무엇입니까? SQL은 어떻게 구성되어 있습니까? 어떻게 귀하의 방법 (수동, onMissingTemplate())가 생성됩니까? 정보가 많을수록 좋습니다. –

+0

@ Dan - SELECT *에 대한 귀하의 대답은 제가 필요한 것입니다. 감사! – Gary

답변

4

쿼리에서 SELECT *를 사용하여 열을 가져 오지 않았는지 확인하십시오. SQL Server는 실행 계획을 캐시 할 수 있으며 SELECT *를 사용하는 경우 추가 된 열을 반환하지 않습니다.

수정하는 또 다른 방법은 SQL Server에서 새 실행 계획을 만들 수 있도록 줄 바꿈 또는 다른 것을 쿼리에 추가하는 것입니다.

어쨌든 SELECT *는 성능이 떨어 지므로이 같은 문제가 발생할 수 있습니다.

+0

그게 문제 였고, SELECT *를 사용하고있었습니다. 매우 감사합니다! – Gary

+0

놀라운 심령 문제 해결을위한 +1 – Antony