Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[14298] Re:DBExpress TSQLQuery 관려하여 문의 드립니다.
박지훈.임프 [cbuilder] 2011 읽음    2012-06-14 19:03
파라미터를 가진 SQL문이 너무 복잡한 경우, 간혹 델파이의 런타임이 SQL 문 파싱에 실패하는 경우가 있었던 것 같습니다. 그럴 때 어떻게 해서 피해간 기억이 있는데, 어떻게 피했는지 기억이 가물가물하네요.

파라미터 지정 부분을 포함해서 해당 SQL문을 디자인타임에 TSQLQuery의 SQL.Text 속성에 넣고 그대로 Active 속성을 true로 해보시기 바랍니다. 어떤 증상이 발생하는지요.

그리고 추가로 다음의 두가지를 알려주세요.
1. 델파이 버전이 몇버전인지?
2. 연결하는 데이터베이스 서버는 어떤 제품인지?



노재환 님이 쓰신 글 :
: 예전 게시글에도 같은 내용이 있었던 내용입니다.
: 거기에 대한 답글이 없어 이렇게 문의 드립니다.
:
: BDE 를 DBExpress 로 변환 과정중에 TQuery 에서는 문제가 없던게 TSQLQuery로
: 변환하여 돌리면 에러가 발생합니다.
:
: error 가 발생
: sql state 42000
: error code = 0
: 이런 에러가 발생함니다
:
: 1           Sql.Clear;
: 2           Sql.Add('select icode, rtrim(ite_name + '' '' + ite_size) iname,');
: 3           Sql.Add('       substring(cyymmdd,7,2) as cday, sum(cqty) as cqty, sum(camt)/1000 as camt');
: 4           Sql.Add('  from (');
: 5           Sql.Add('        select sal_ite_code as icode, sal_mem_code as ccode, sal_yymmdd as cyymmdd,');
: 6           Sql.Add('                   sum(sal_qty) as cqty, sum(sal_amt) as camt');
: 7           Sql.Add('          from sale');
: 8           Sql.Add('         where sal_flag = ''1''');
: 9           Sql.Add('           and sal_ite_code between :MFr and :MTo');
: 10          Sql.Add('           and sal_yymmdd   between :DFr and :DTo');
: 11          Sql.Add('         group by sal_ite_code, sal_mem_code, sal_yymmdd');
: 12          Sql.Add('        having sum(sal_box) <> 0');
: 13          Sql.Add('       ) tmp');
: 14          Sql.Add('       left outer join item on ite_code = icode');
: 15          Sql.Add(' group by icode, ite_name, ite_size, cyymmdd');
: 16          Sql.Add(' order by icode, cyymmdd');
:             ParamByName('DFr').AsString   := EdDFr.Text;
:             ParamByName('DTo').AsString   := EdDTo.Text;
:             ParamByName('MFr').AsString   := EdMFr.Text;
:             ParamByName('MTo').AsString   := EdMTo.Text;
:             Open;
:
: 그런데 ParamByName 절을 빼면 이상 없이 수행이 되는데 ,
: ParamByName는 어찌 해결해야 하나요??
:
: 참고로  5~12 라인만 뽑아 수행하면 ParamByName 절을 넣어도 잘 됩니다.
:
: 도통 원인을 모르겠네요.. 고수님들의 답변 부닥트립니다.

+ -

관련 글 리스트
14297 DBExpress TSQLQuery 관려하여 문의 드립니다. 노재환 1950 2012/06/13
14298     Re:DBExpress TSQLQuery 관려하여 문의 드립니다. 박지훈.임프 2011 2012/06/14
14302         Re:Re:DBExpress TSQLQuery 관려하여 문의 드립니다. 노재환 2245 2012/06/15
14304             Re:Re:Re:DBExpress TSQLQuery 관려하여 문의 드립니다. 박지훈.임프 2402 2012/06/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.