자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi [질문] XE3 DataSnap 사용시 SQL 문의
2012.10.12 20:52
Delphi XE3에서 DataSnap으로 3티어 환경을 만들때 SQL 관련 문의를 하고자 합니다.
"SELECT ... FROM ... ORDER BY CASE WHEN SABUN IS NULL THEN 1 ELSE 0 END"
위의 쿼리를 ADO에서 돌리면 이상이 없습니다.
DataSnap 서버에 아래와 같이 작성되었습니다.
SQLDataSet1.CommandText := '위의 쿼리 문장'
SQLDataset1.Prepared := True;
SQLDataSet1.Close;
SQLDataSet1.Open;
SQLDataSet1.First;
SQLDataSet1.Refresh;
이것을 클라이언트에서 실행하면 "Remote Error: Argument out of range" 에러가 나옵니다.
"ORDER BY CASE WHEN SABUN IS NULL THEN 1 ELSE 0 END" 이 문장을
"ORDER BY SABUN" 이렇게 하면 이상없이 돌아갑니다.
ADO에서와는 달리 DataSnap에서 쿼리 사용시 제약사항이 있을까요?
Delphi [질문] XE3 DataSnap 사용시 SQL 문의
2012.10.12 20:52
Delphi XE3에서 DataSnap으로 3티어 환경을 만들때 SQL 관련 문의를 하고자 합니다.
"SELECT ... FROM ... ORDER BY CASE WHEN SABUN IS NULL THEN 1 ELSE 0 END"
위의 쿼리를 ADO에서 돌리면 이상이 없습니다.
DataSnap 서버에 아래와 같이 작성되었습니다.
SQLDataSet1.CommandText := '위의 쿼리 문장'
SQLDataset1.Prepared := True;
SQLDataSet1.Close;
SQLDataSet1.Open;
SQLDataSet1.First;
SQLDataSet1.Refresh;
이것을 클라이언트에서 실행하면 "Remote Error: Argument out of range" 에러가 나옵니다.
"ORDER BY CASE WHEN SABUN IS NULL THEN 1 ELSE 0 END" 이 문장을
"ORDER BY SABUN" 이렇게 하면 이상없이 돌아갑니다.
ADO에서와는 달리 DataSnap에서 쿼리 사용시 제약사항이 있을까요?
DATASNAP의 SQL과 델파이 일반 SQL은 차이가 없습니다. 단 ansi-92 표준 sql이어야합니다. 그리고 참고적으로 SQLDATASET이나 SQLQuery등은 단 방향 데이터셋이라는 것이 ADO와 다른 점입니다.