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
[14302] Re:Re:DBExpress TSQLQuery 관려하여 문의 드립니다.
노재환 [jhnoh70] 2245 읽음    2012-06-15 10:02
답변 감사드립니다.

저도 님 말처럼 SQL.Tetx 속에 넣어서 처리 하고 있긴 한데 문장이 너무 길어지고
파라미터가 많은 Query 문, 같은 파라미터를 반복해서 사용하는 Query문에는
불편하기 그지 없더라구요..
다른 해결책은 정녕 없나요? ^^

1. 델파이 버전은 7.0 이고..
2. 데이타베이스는 MS-SQL 2005 입니다..


박지훈.임프 님이 쓰신 글 :
: 파라미터를 가진 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 관려하여 문의 드립니다. 박지훈.임프 2012 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.