ShowMessage(' ''aaa'', ''bbb'' ');
하면 원하는 문자열이 나옵니다. 이렇게
'aaa', 'bbb'
어쨋든 이렇게도 해보고 저렇게도 해보고, 각종 사이트 구글링 다 해보았지만 유사한 질문은 있는데
명쾌한 답은 없군요..
실제로 토드로 해 봐도 2개 이상이면 데이타가 나오질 않습니다.
그런걸 보면 안되는 것 같기도 하고...
멋쟁이 님이 쓰신 글 :
: 하나는 당연히 되고
: 두번째 사용하셨던
: ParamByName('p_id').AsString := ' ''aaa'', ''bbb'' '; // 이것은 결과가 나오지 않음.
: 이것도 또한 p_id 값에는 ' ''aaa'', ''bbb'' ' 이런 하나의 문장으로 들어가게되어서
: 결과값이 나오지 않습니다.
:
: 푸른솔님이 의도하신거는
: where id in ('aaa', 'bbb') 인데
: 실제 결과는
: where id in( ''aaa','bbb'') 이렇게 되었네요.
:
: 저는 프로시저를 만들고 프로시저 안에서 파라미터 입력받은 배열을 테이블변수로 만들어서 처리했는데요.
: 사실 저도 다른 방법이 있는지 궁금합니다.
:
: 푸른솔 님이 쓰신 글 :
: : 아래와 같은 Query가 있을 때 p_id를 ParamByName으로 받을려고 합니다.
: : (실제의 Query는 상당히 복잡합니다. 그래서 반드시 ParamByName으로 받아야 하는데..)
: : select ...
: : from ...
: : where id in ( :p_id );
: : ParamByName('p_id').AsString := ??? 이 부분을 어떻게 코딩을 해야 될까요?
: :
: : 여러가지로 다 해 봤지만 결과가 안 나오네요. 결과가 안 나온다는 얘기는 실행을 시켰을 때 아무 데이타가
: : 나오지 않는다는 얘기입니다. 즉, 결과값이 null입니다.
: :
: : 구글링 등 여러가지로 검색을 해 보았지만 딱히 답을 찾지 못하였습니다. 혹시 아시는 분은 조언을 부탁드리겠습니다.
: :
: : 참고로 하나는 됩니다. 즉,
: : ParamByName('p_id').AsString := 'aaa'; // 이것은 되는데
: : 2개 이상이 들어가면 결과값이 안 나옵니다.
: : ParamByName('p_id').AsString := ' ''aaa'', ''bbb'' '; // 이것은 결과가 나오지 않음.
: :
: : 문법상으로는 전혀 문제가 없을 것으로 보이는데 왜 안되는지 모르겠네요...
: : 이외 여러가지로 해 보았지만 정답을 찾지 못하고 질문을 올려 봅니다.
: :
: : DB는 Sql Server2005 사용합니다.
|