Q&A

  • SQL.Add로 Add할수 있는 쿼리문장의 한계?
sql.add('select....')로 쿼리를 동적으로 생성하여 수행할려고 하는데 문장이 중간쯤에서 잘려 버렸습니다.

TQuery 컴포넌트의 SQL Editor에다 DesignTime시 똑같이 작성된 것은 수행이

잘 되는데, RunTime시 Add로 생성한 것은 문장이 너무 길어서 그런지 문장의 1/3정도만 Add되어 있고 나머지는 잘려습니다.

문장의 길이는 약 400라인이 넘습니다.(무척 길죠..)RunTime시 Add로 생성할 수 있는 쿼리문장의 한계와 해결방법 좀 알려주세요

문제는 TQuery 컴포넌트는 하나만 사용해서 조건에 따라 동적으로 SQL 문장을 바꾸어 쿼리를 해야하거든요

3  COMMENTS
  • Profile
    박종성 1999.08.25 18:50
    김용 께서 말씀하시기를...

    > sql.add('select....')로 쿼리를 동적으로 생성하여 수행할려고 하는데 문장이 중간쯤에서 잘려 버렸습니다.

    > TQuery 컴포넌트의 SQL Editor에다 DesignTime시 똑같이 작성된 것은 수행이

    > 잘 되는데, RunTime시 Add로 생성한 것은 문장이 너무 길어서 그런지 문장의 1/3정도만 Add되어 있고 나머지는 잘려습니다.

    > 문장의 길이는 약 400라인이 넘습니다.(무척 길죠..)RunTime시 Add로 생성할 수 있는 쿼리문장의 한계와 해결방법 좀 알려주세요

    > 문제는 TQuery 컴포넌트는 하나만 사용해서 조건에 따라 동적으로 SQL 문장을 바꾸어 쿼리를 해야하거든요



    문자열 Type중 string은 256자까지만 되지요.

    이것을 쓰지 말고, AnsiString을 써 보세요.





  • Profile
    김영해 1999.08.24 05:46
    김용 께서 말씀하시기를...

    > sql.add('select....')로 쿼리를 동적으로 생성하여 수행할려고 하는데 문장이 중간쯤에서 잘려 버렸습니다.

    > TQuery 컴포넌트의 SQL Editor에다 DesignTime시 똑같이 작성된 것은 수행이

    > 잘 되는데, RunTime시 Add로 생성한 것은 문장이 너무 길어서 그런지 문장의 1/3정도만 Add되어 있고 나머지는 잘려습니다.

    > 문장의 길이는 약 400라인이 넘습니다.(무척 길죠..)RunTime시 Add로 생성할 수 있는 쿼리문장의 한계와 해결방법 좀 알려주세요

    > 문제는 TQuery 컴포넌트는 하나만 사용해서 조건에 따라 동적으로 SQL 문장을 바꾸어 쿼리를 해야하거든요



    ADD 메소드를 쓰시면서 공란을 많이쓰게 되면 어쩔수 없이 그런경우가 생길수도 있지요 그래서 저는 TEXT에 직접할당하는 방법을 사용하지요.

    저도 무려 1000라인이 넘는 ^^;;;; 경우도 있었거든요.



    Query1.close;

    with Query1.sql do

    begin

    clear;

    text :='select a1,a1.........'+#13+

    ' ......... '+#13+

    ' ......... '+#13+

    'order by a1 ';



    end;

    Query1.open;



    위와 같이 사용하지요 물론 공백을 최대한 줄여서요.

    공백 자체도 스트링의 길이에 들어가기 때문이지요,

    참고로 대부분의 서버에서 해석할수 있는 스트링의 길이는

    64k 정도로 알고있습니다.

    물론 옵션지정을 늘려줄 수도 있겠지요....

  • Profile
    왕초 1999.08.24 02:33
    김용 께서 말씀하시기를...

    > sql.add('select....')로 쿼리를 동적으로 생성하여 수행할려고 하는데 문장이 중간쯤에서 잘려 버렸습니다.

    > TQuery 컴포넌트의 SQL Editor에다 DesignTime시 똑같이 작성된 것은 수행이

    > 잘 되는데, RunTime시 Add로 생성한 것은 문장이 너무 길어서 그런지 문장의 1/3정도만 Add되어 있고 나머지는 잘려습니다.

    > 문장의 길이는 약 400라인이 넘습니다.(무척 길죠..)RunTime시 Add로 생성할 수 있는 쿼리문장의 한계와 해결방법 좀 알려주세요

    > 문제는 TQuery 컴포넌트는 하나만 사용해서 조건에 따라 동적으로 SQL 문장을 바꾸어 쿼리를 해야하거든요



    안냐세요.. 김용님!! ^_^

    저도 몇번 당해봤거든요.. 도움이 조금이나마 될까 싶어서 이렇게 답변을 달게되었습니다...



    String같은 경우에는 제한이 있더라구요

    그래서 저는 변수에 최대한 넣을수 있는만큼을 넣구 그 변수를

    Query에 ADD시켰습니다.. 그리구 ADD시킬때 Enter값도 같이 넣었습니다..

    무슨 뜻인지 아시겠죠...??



    SQL문장이 400라인이라두 들어갈겁니다...

    그럼 즐거운 코딩되세요... ^_^