자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi XE8 OS 32bit에서는 FireDAC CreateDB가 잘 되는데 64bit로 빌더를 바꿔서 하면 에라가 발생?
2016.07.12 13:34
Target Platforms Win32에서는 아무 문제없이 잘되던 소스가
Target Platforms Win64에서는 Error 가 발생하네요.
해결책이 없을까요?
MSAccService: TFDMSAccessService;
sMSAccName: string;
sMSAccName := 'xxxxx.mdb';
if not(FileExists(sMSAccName)) then
begin
MSAccService.Database := sMSAccName;
MSAccService.DBVersion:= avDefault;
MSAccService.Password := 'K12345678';
MSAccService.CreateDB; // <-- 이 부분에서 Error 발생
end;
First chance exception at $000007FEFD56A06D. Exception class EOleSysError with message '클래스가 등록되지 않았습니다'. Process xxxxxx.exe (6676)
<System.Win.ComObj 소스 부분 >
function CreateOleObject(const ClassName: string): IDispatch;
var
ClassID: TCLSID;
begin
try
ClassID := ProgIDToClassID(ClassName);
{$IFDEF CPUX86}
try
Set8087CW( Default8087CW or $08);
{$ENDIF CPUX86}
OleCheck(CoCreateInstance(ClassID, nil, CLSCTX_INPROC_SERVER or
CLSCTX_LOCAL_SERVER, IDispatch, Result));
{$IFDEF CPUX86}
finally
Reset8087CW;
end;
{$ENDIF CPUX86}
except
on E: EOleSysError do
raise EOleSysError.Create(Format('%s, ProgID: "%s"',[E.Message, ClassName]),E.ErrorCode,0) { Do not localize }
end;
end;
댓글 0
Delphi XE8 OS 32bit에서는 FireDAC CreateDB가 잘 되는데 64bit로 빌더를 바꿔서 하면 에라가 발생?
2016.07.12 13:34
Target Platforms Win32에서는 아무 문제없이 잘되던 소스가
Target Platforms Win64에서는 Error 가 발생하네요.
해결책이 없을까요?
MSAccService: TFDMSAccessService;
sMSAccName: string;
sMSAccName := 'xxxxx.mdb';
if not(FileExists(sMSAccName)) then
begin
MSAccService.Database := sMSAccName;
MSAccService.DBVersion:= avDefault;
MSAccService.Password := 'K12345678';
MSAccService.CreateDB; // <-- 이 부분에서 Error 발생
end;
First chance exception at $000007FEFD56A06D. Exception class EOleSysError with message '클래스가 등록되지 않았습니다'. Process xxxxxx.exe (6676)
<System.Win.ComObj 소스 부분 >
function CreateOleObject(const ClassName: string): IDispatch;
var
ClassID: TCLSID;
begin
try
ClassID := ProgIDToClassID(ClassName);
{$IFDEF CPUX86}
try
Set8087CW( Default8087CW or $08);
{$ENDIF CPUX86}
OleCheck(CoCreateInstance(ClassID, nil, CLSCTX_INPROC_SERVER or
CLSCTX_LOCAL_SERVER, IDispatch, Result));
{$IFDEF CPUX86}
finally
Reset8087CW;
end;
{$ENDIF CPUX86}
except
on E: EOleSysError do
raise EOleSysError.Create(Format('%s, ProgID: "%s"',[E.Message, ClassName]),E.ErrorCode,0) { Do not localize }
end;
end;