이 누리집은 대한민국 공식 전자정부 누리집입니다.
방*석
2010-05-10 10:18:32
4,723
공통컴포넌트
완료
안녕하세요. 현재 공부중인 학생인데
예제를 첨부해서 ms sql과 연동하는 도중에 이러한 메세지가 뜨는데 어떻게 해야하나요.
WHERE ID BETWEEN #firstIndex# and #recordCountPerPage#<-이것이 문제인거 같아요,
SqlMapClient operation; bad SQL grammar []; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred while applying a parameter map. --- Check the sampleDAO.selectSampleList_D-InlineParameterMap. --- Check the statement (query failed). --- Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 키워드 'WHERE' 근처의 구문이 잘못되었습니다.
안녕하세요.. 방용석님..
우선 전자정부 표준프레임워크에서는 공식적으로 MS SQL을 지원하지 않습니다.
다만, JDBC 표준에 맞는 DBMS의 경우는 대부분 문제없이 사용가능합니다.
(공식적으로 지원하지 않는다는 의미는 가이드나 테스트가 수행되지 않았다는 의미로 사용할 수 없다는 의미는 아님)
올려 주신 query를 샘플 데이터와 함께.. MS SQL에 직접 호출해 보시면 보다 정확한 원인이 나올 것 같습니다.
그리고 데이터의 구성상
WHERE ID BETWEEN #firstIndex# and #firstIndex# + #recordCountPerPage# 와 같은 방식이 맞으며..
MS SQL에서의 첫번째 레코드가 0인지 1인지를 확인하셔서 적용하시면 됩니다.
예를 들면 Oracle의 경우는 다음과 같이 적용됩니다.
WHERE ID BETWEEN #firstIndex# + 1 and #firstIndex# + #recordCountPerPage#
그럼.. 즐거운 하루되십시오.
감사합니다.