아래의 문장을 oracle DB로 사용하면 실행이 되는데 paradox DB를 사용하면
acess vioration error가 발생합니다. 어느 부분이 이상이 있는지 지적바랍니다.
with dmInmul.q1 do
begin
close;
SQL.Clear;
SQL.ADD('select name, c_name, c_postno post, c_juso1 juso1, c_juso2 juso2, damdang');
SQL.ADD('from sinsang');
if length(lSabeon_list.caption) = 7 then
begin
SQL.ADD('where sabeon = :sabeon');
parambyname('sabeon').asstring := lSabeon_list.caption
end
else
if length(lSabeon_list.caption) > 7 then
begin
SQL.ADD('where sabeon is not null and (sabeon = :sabeon');
parambyname('sabeon').asstring := copy(lSabeon_list.caption,1,7);
j := 8;
//SQL.ADD('(');
for i := 1 to (length(lSabeon_list.caption) div 7) - 1 do
begin
SQL.ADD(' or sabeon = :sabeon' + inttostr(i) + '');
parambyname('sabeon' + inttostr(i) + '').asstring := copy(lSabeon_list.caption,j,7);
j := j + 7;
end;
SQL.ADD(')');
end;
SQL.ADD('order by name');
open;
end;
안녕하세요..조복기입니다..
rdb에 따라서 실행이 되고 안된다고 하니까
이유를 잘 모르겠지만
쿼리 오픈시에는 acess vioration error가 거의 나는경우가 드물거든요..
그전의 연산과정에서 문제가 생긴것같은데
한번 추적을 해나가보시구요
만들어지는 sql문을 바로 add시키지말고
변수에 한번 담았다가 그 내용을 showmessage등으로 확인해보세요..
바르게 만들어졌는지..
그리고 그 sql이 sql-explorer등에서
에러없이 실행이 되는지 등..
sql쪽은 항상 사소한부분에서 에러가 나곤 하거든요..
참고만 하세요..~
신동식 께서 말씀하시기를...
> 아래의 문장을 oracle DB로 사용하면 실행이 되는데 paradox DB를 사용하면
> acess vioration error가 발생합니다. 어느 부분이 이상이 있는지 지적바랍니다.
> with dmInmul.q1 do
> begin
> close;
> SQL.Clear;
> SQL.ADD('select name, c_name, c_postno post, c_juso1 juso1, c_juso2 juso2, damdang');
> SQL.ADD('from sinsang');
> if length(lSabeon_list.caption) = 7 then
> begin
> SQL.ADD('where sabeon = :sabeon');
> parambyname('sabeon').asstring := lSabeon_list.caption
> end
> else
> if length(lSabeon_list.caption) > 7 then
> begin
> SQL.ADD('where sabeon is not null and (sabeon = :sabeon');
> parambyname('sabeon').asstring := copy(lSabeon_list.caption,1,7);
> j := 8;
> //SQL.ADD('(');
> for i := 1 to (length(lSabeon_list.caption) div 7) - 1 do
> begin
> SQL.ADD(' or sabeon = :sabeon' + inttostr(i) + '');
> parambyname('sabeon' + inttostr(i) + '').asstring := copy(lSabeon_list.caption,j,7);
> j := j + 7;
> end;
> SQL.ADD(')');
> end;
> SQL.ADD('order by name');
> open;
> end;
>
>