하나는 당연히 되고
두번째 사용하셨던
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 사용합니다.
|