TQuery 의 SQL에 파라미터포함된 쿼리를 ADD하고, 임시문자열에 gettext한다음, 이 임시문자열의 파라미터를 입력하게하여, 이 파라미터명을 입력박스의 값으로 stringreplace로 치환하려하니 변경이 않되더군요.
SQL문은 메모박스로 입력받으므로 줄이 2개이상 있을수있고, 따라서 줄사이 #13 이 포함된 문자열자체를 쿼리문에 ADD시킵니다. 파라미터는입력시':'를 먼저 쿼리에서 존재할수없는 'marp'라는 문자열로 변환하는데까지는 이상이없는데, marp-라는 파라미터를 대치값으로 변경이 않되는군요.
예)
select * from tab where rownum<=:a_rn
-> 입력값 '10', stringreplace(쿼리열,':','marp',[rfreplaceall])
select * from tab where rownum<=marpa_rn (O)
-> stringreplace(쿼리열,'marpa_rn','10',[rfreplaceall])
select * from tab where rownum<=marpa_rn (여기서 pos함수로 위치를 찾아집니다면, stringreplace 함수는 안먹더군요)
stringreplace함수를 찾아보니 대문자로 바꾸고 안시스트링으로 바꾸는듯합니다만, 이후 뭔가 잘못처리한부분이 있나요.
lsSQL := StringReplace(lsSQL, ':a_rn', '10', [rfReplaceAll]);
Query.SQL.Text := lsSQL;
이렇게 한번에 바꾸셔도 되는데요...
천천히 다시한번 확인해 보심이...보이지 않는 실수를 하신듯 ^^