Q&A

  • Query의 ParamByName 값을 포함한 SQL 을 얻을수없나요?

안녕하세요

TQuery에 SQL 문을 작성하다보면 파라미터를 ParamByName으로 넘기던지

그냥 SQL.Text := 'Select * from '+테이블명;

이런식으로 하던지 하잖습니까?

후자는 TMemo 나 그런데로 쿼리문을 다 받아서 디버깅하기 편한데

ParamByName으로 넘기는게 더 좋은 방법으로 알고 있습니다. 많은 분들께서 추천하시구요

그런데 쿼리문 자체를 뽑아오기가 안되네요

SQL.Text := 'Select * from :TabName ';
ParamByName('TabName').AsString := 'imsi';

이런식으로 하면 TMemo 나 클립보드로 바로 보내면 'Select * from :TabName '

그냥 이런 문장이 그대로 (파라미터명 자체가) 들어가 있는데요

이거 파라미터까지 값으로 대치해서 얻어올 수 있는 방법 없나요?

SQLMonitor 유틸을 이용하면 가능한거 같긴 한데...중간에 특수문자등이 대치돼서

들어오기도 하고 하니...영...불편하네요

아시는 분 답변 좀 부탁드려요...

※ 아참...ParamByName 으로 넘기면 쿼리문에 오류를 일으킬수있는 따옴표나(')

등등을 알아서 바꿔서(에러 안나게) 해주는 걸로 알고 있습니다.

ParamByName 으로 파라미터를 통해 넘기면 이렇게 자동으로 처리해주는 부분이

뭐뭐가 있는지요?  
1  COMMENTS
  • Profile
    열심히 2003.10.11 20:06
    프로그램으로 짜시면 간단할거같은데요..

    당연히 소스상에서 파라미터까지 다 넣고 난후에 가지고 와야겠지만..

    먼저 쿼리문을 그대로 가지고 MEMO에 넣습니다.

    그다음 MEMO의 텍스트를 루핑을 돌려서 콜론이 나올때까지 찾습니다.

    콜론이 나왔다면 그다음 칸부터 다음 공백이 있는곳까지 주욱 읽어서

    역으로 쿼리의 파라미터를 찾습니다...

    파라미터값을 원래 있던 MEMO의 파라미터 부분과 바꿉니다.

    이럼 되겠죠?