2

我正在尝试在运行时创建一个 Firebird 数据库。我用来执行此操作的过程是这样的:

procedure CreateDatabase(DBName: String);
var
  IBDatabase1: TIBDatabase;
begin
  IBDatabase1 := TIBDatabase.Create(Self);
  try
    IBDatabase1.DatabaseName := ChangeFileExt(DBName, '.fdb');
    IBDatabase1.Params.Add('USER ''SYSDBA''');
    IBDatabase1.Params.Add('PASSWORD ''masterkey''');
    IBDatabase1.Params.Add('PAGE_SIZE 4096');
    IBDatabase1.Params.Add('DEFAULT CHARACTER SET WIN1252');
    IBDatabase1.CreateDatabase;
  finally
    IBDatabase1.Free;
  end;
end;

在我为测试此功能而创建的任何小项目中,我都毫无问题地实现了这一点。但是,如果我尝试在同一台机器、相同的 Delphi、相同的所有内容上运行此代码,除了它是一个不同(而且相当大)的项目,我会在 IBDatabase1.CreateDatabase 行上收到以下错误:

First chance exception at $7579B9BC. Exception class EIBInterBaseError with message 'unavailable database'. Process xxx.exe (4144)

有人对这个有任何线索吗?也许某种方式可以正确调试?

提前致谢。

编辑

它似乎在我的项目文件中。我已经设法生成了一个新的并且问题消失了,但是我担心将来会被此咬伤。什么可能导致这种情况?

4

1 回答 1

4

这不是我的项目文件。这是一个旧的 GDS32.dll,与可执行文件放在同一目录中。删除它解决了这个问题。希望这可以帮助有同样问题的人。

于 2012-03-16T14:15:02.003 回答