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 に答える