안녕하세요...
디비는 오라클이구...삽입,삭제,수정 세개의 프로시저를 만들었는데...
삽입은 잘 대는데요...
삭제와 수정만 하려고 하면...이상한 에러가 납니다..
project project2.exe raised exception class EAccessviolation with message
'Access violation at address 036FDFE4C in module 'ORA805.dll' read of
address 00000000' process stopped..........
모 이런 에러가 나는데....뭔가 치명적인 에러 같은데...
오라클 때문인건지...아님 storedproc 컴포넌트의 문제인지..모르겠네요...
database1.StartTransaction ;
with storedproc1 do
begin
//active := true;
if prepared = true then
prepared := false;
prepared := true;
{params.ParamByName('bun').asinteger := bun;
params.ParamByName('s_name').asstring := s_name;
params.ParamByName('phone').asstring := phone;
params.ParamByName('bir').asstring := bir;
params.ParamByName('mail').asstring := mail;
}
params.ParamByName('bun').value := bun;
params.ParamByName('s_name').value := s_name;
params.ParamByName('phone').value := phone;
params.ParamByName('bir').value := bir;
params.ParamByName('mail').value := mail;
try
execproc;
database1.commit;
except
showmessage('error');
database1.rollback;
exit;
end;//try end
end; //proc
showmessage('삽입 OK');---이건 insert 인데 잘 대구요
--문제의 delete----
database1.StartTransaction ;
with storedproc1 do
begin
params.Clear ;
storedprocname := 'delete_data';
if prepared = true then
prepared := false;
prepared := true;
//params[0].AsInteger := bun;
//params.ParamByName('bun').asinteger := strtoint(edit1.text);
params.Clear ;
//Create.ParamByName('bun').asinteger := strtoint(edit1.text);
//params.ParamByName ('bun').value := strtoint(edit1.text);
Params.CreateParam(ftinteger,'bun',ptinput).asinteger := strtoint(edit1.text);
try
execproc;
database1.Commit ;
except
showmessage('error');
database1.rollback;
exit;
end;
end;
showmessage('삭제 OK');
이건데요...코팅이 잘못될수도 있겠지만...
아무래도 저 에러는 코딩 때문에 나는 에러가 아닌 듯 해서요...
고수님덜 도와주세요