2009-09-16 2 views
0

과 일치하지 않습니다. 저장된 프로 시저가 변경된 후 에 2 개의 새 양식 필드를 추가 한 다음 성공적으로 실행했습니다. 이제 저장된 프로 시저를 취소하고 이 성공적으로 실행, 실행하지만 ColdFusion에서 에 오류 ColdFusion MX의 이후제공된 값의 열 이름 또는 번호가 테이블 정의

[Macromedia][SQLServer JDBC Driver][SQLServer]Insert Error: Column name or number of supplied values does not match table definition. 


90 :  <cfprocparam type="in" cfsqltype="CF_SQL_INTEGER" dbvarname="@reportMonth" value="#xxMDB#"> 
91 :  <cfprocparam type="in" cfsqltype="CF_SQL_INTEGER" dbvarname="@orderBy"  value="#xxOBDB#"> 
92 :  **<cfprocresult name="xxResult">** 
93 : </cfstoredproc> 
+1

dbVarname을 제거하고 위치 표기법을 사용해야한다는 것에 동의합니다. 프로 시저가 성공적으로 실행되었지만 "Insert Error : ..."오류가 직접 데이터베이스 오류처럼 보인다고 알고 있습니다. 프로 시저의 SQL 내에서 문제점 제안. dbvarname = "@ orderBy"는 프로 시저가 동적 SQL을 사용하고 있음을 나타냅니다. 그렇지? 동적 SQL 문제는 디버그하기가 어렵고 놓치기 쉽습니다. CF 코드 값이 초기 테스트에서 사용 된 것과 다르거 나 순서가 다른 경우 처음에는 절차가 처음 작동 한 것처럼 보입니다. (나는 동적 SQL의 팬이 아니다) – Leigh

답변

1

제공 :

Changed the dbvarname attribute behavior: it is now ignored for all drivers. ColdFusion uses JDBC 2.2 and does not support named parameters.

http://www.cfquickdocs.com/cf8/#cfprocparam

,536에게
+0

이것은 prexisting 코드이므로 올바르게 작동해야 하는가? –

+0

@Henry : +1 및 cfquickdocs에 대한 가상 보너스 포인트 1 개. :) 정말 고마워. 고마워. – Tomalak

+0

@dan : 작동하는 데 사용되었다고해서 그것이 여전히 작동 함을 의미하지는 않습니다. Coldfusion 6 (MX라고도 함)은 이전 버전에서 상당히 변경되었습니다. 호환성은 잘 유지되었지만 어디에도 없습니다. CF 관리자에게는 "디버깅 및 로깅"아래에 "코드 분석기"가 있습니다.이 코드 분석기는 기존 코드에서 이러한 종류의 문제를 지적 할 수 있습니다. – Tomalak

관련 문제