Q&A

  • 해결 못 한쥐 2주가 넘었습니다..제발...
몇번 올렸었는데...잘 안되네여..



에러내용입니다...

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 <---- YES를 선택하면 밑에서 에러 NO를 선택하면 문제 없음

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;



무엇이 문제 일까여...

4  COMMENTS
  • Profile
    장지용 2000.05.09 01:28
    FormCreate 대신에

    FormShow 에 넣으면 안될까요?





    차니 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 <---- YES를 선택하면 밑에서 에러 NO를 선택하면 문제 없음

    > 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;

    >

    > 무엇이 문제 일까여...

  • Profile
    차니 2000.05.09 02:34
    정말 감사합니다...갈텨 주신데로 했더니 에러가 없어지네여...ㅠ.ㅠ

    정말 감사합니다..

    구럼 한가지더 질문을...

    '데이터베이스를 선택하시겠습니까?에서 예를 하고 디비를 선택하고 들어가면 선택한 디비가 아니고 그 전에 열었던 디비가 나오는데 왜 일까여??





    장지용 wrote:

    > FormCreate 대신에

    > FormShow 에 넣으면 안될까요?

    >

    >

    > 차니 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 <---- YES를 선택하면 밑에서 에러 NO를 선택하면 문제 없음

    > > 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;

    > >

    > > 무엇이 문제 일까여...

  • Profile
    장지용 2000.05.09 03:48
    Database1.Open 하기전에



    .......

    Database1.DatabaseName := OpenDialog1.FileName;

    Database1.Open;

    GetConfiguration;

    .......



    MDB는 안써봐서 될지 안될지 잘 모르겠습니다.

    안되시더라도 욕하지 마시길...



    차니 wrote:

    > 정말 감사합니다...갈텨 주신데로 했더니 에러가 없어지네여...ㅠ.ㅠ

    > 정말 감사합니다..

    > 구럼 한가지더 질문을...

    > '데이터베이스를 선택하시겠습니까?에서 예를 하고 디비를 선택하고 들어가면 선택한 디비가 아니고 그 전에 열었던 디비가 나오는데 왜 일까여??

    >

    >

    > 장지용 wrote:

    > > FormCreate 대신에

    > > FormShow 에 넣으면 안될까요?

    > >

    > >

    > > 차니 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 <---- YES를 선택하면 밑에서 에러 NO를 선택하면 문제 없음

    > > > 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;

    > > >

    > > > 무엇이 문제 일까여...

  • Profile
    차니 2000.05.09 04:04
    이게 레지스터에 등록된 디비를 오픈하는것 같은데...

    잘 모르겠네여...제가 프로그램을 짜질않아서리...델파이도 첨이구여...







    > > 에러내용입니다...

    > > > > 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 <---- YES를 선택하면 밑에서 에러 NO를 선택하면 문제 없음

    > > > > 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;

    > > > >

    > > > > 무엇이 문제 일까여...