Q&A

  • Sql문장좀 봐주세요 Error 가 납니다
아래의 문장을 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;





1  COMMENTS
  • Profile
    조복기 1999.08.10 08:19


    안녕하세요..조복기입니다..



    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;

    >

    >