이런 에러가 나오는데 어떻게 해결할까여??
Project Sibis.exe raised exception class EAccessViolation with message
'Accessviolation at address 0043995B in module 'SIBIS.EXE'. Read or address FFFFFFFF.
Process stopped. Use Step or Run to continue.
procedure TfmMain.FormCreate(Sender: TObject);
var
TheReg: TRegistry;
KeyName: String;
//ValueStr: String;
begin
if MessageDlg('데이터베이스를 선택하시겠습니까?',mtInformation,[mbYes,mbNo],0)= mrYes then
begin
TheReg := TRegistry.Create;
try
TheReg.RootKey := HKEY_CURRENT_USER;
KeyName := 'SoftwareODBCODBC.INISiBeeODBC';
if TheReg.OpenKey(KeyName, False) then
begin
if OpenDialog1.Execute then <--------- 이부분에서 오류가 나네여???
begin
TheReg.WriteString('DBQ',OpenDialog1.FileName);
TheReg.CloseKey;
end;
end;
finally
TheReg.Free;
end;
fmMain.StatusBar1.SimpleText:= '현재 작업중인 데이터베이스는 '+OpenDialog1.FileName+ ' 입니다';
end;
Database1.Open;
//OpenDialog1.FileName;
GetConfiguration;
end;
예전에도 말씀드렸지만 위의 에러는 디버깅해보기 전에는 알수없는 경우가 많습니다.
김일영님의 말씀처럼 OpenDialog1이 없을 수도 있습니다.
이렇게 한번해보세요. 이렇게 디버깅했는데도 Accessviolation 에러가 난다면 이문제는
다른곳에서 일어난 에러입니다. Accessviolation에러는 어쩔땐 전혀 엉뚱한 위치를
알려줄 수도 있으므로 착실히 디버깅해보세요...
if TheReg.OpenKey(KeyName, False) then
begin
// if OpenDialog1.Execute then
begin
TheReg.WriteString('DBQ',여기에 풀패스 파일이름을 적어주세요);
// 예) TheReg.WriteString('DBQ','c:abc.db');
TheReg.CloseKey;
end;
end;
차니 wrote:
> 이런 에러가 나오는데 어떻게 해결할까여??
>
> Project Sibis.exe raised exception class EAccessViolation with message
> 'Accessviolation at address 0043995B in module 'SIBIS.EXE'. Read or address FFFFFFFF.
> Process stopped. Use Step or Run to continue.
>
>
> procedure TfmMain.FormCreate(Sender: TObject);
> var
> TheReg: TRegistry;
> KeyName: String;
> //ValueStr: String;
> begin
> if MessageDlg('데이터베이스를 선택하시겠습니까?',mtInformation,[mbYes,mbNo],0)= mrYes then
> begin
> TheReg := TRegistry.Create;
> try
> TheReg.RootKey := HKEY_CURRENT_USER;
> KeyName := 'SoftwareODBCODBC.INISiBeeODBC';
> if TheReg.OpenKey(KeyName, False) then
> begin
> if OpenDialog1.Execute then <--------- 이부분에서 오류가 나네여???
> begin
> TheReg.WriteString('DBQ',OpenDialog1.FileName);
> TheReg.CloseKey;
> end;
> end;
> finally
> TheReg.Free;
> end;
> fmMain.StatusBar1.SimpleText:= '현재 작업중인 데이터베이스는 '+OpenDialog1.FileName+ ' 입니다';
> end;
> Database1.Open;
> //OpenDialog1.FileName;
> GetConfiguration;
> end;