[fpc-pascal] Re: SqlDB fails under Windows to create a new Firebird database

Michael Van Canneyt michael at freepascal.org
Wed Oct 30 13:58:51 CET 2013



On Wed, 30 Oct 2013, Graeme Geldenhuys wrote:

> Hi,
> 
> I created a very simple little application that takes 2 parameters, then creates a empty FDB (firebird) database, then runs 4
> script files to populate the database with default tables and data.
> 
> This little console application works perfectly under Linux and FreeBSD, but fails under Windows. Currently testing with
> Win2000 (32-bit).
> 
> Here is the code that causes the AV.
> 
> -----------------------
> procedure TMyApplication.CreateEmptyDatabase;
> var
>   LHost: string;
>   LDBName: string;
>   n: integer;
> begin
>   n := Pos(':', FDBLocation);
>   LHost   := Copy(FDBLocation, 1, n-1);
>   LDBName := Copy(FDBLocation, n+1, Length(FDBLocation)-n);
> 
>   conn := TIBConnection.Create(self);
>   conn.Dialect := 3;
>   conn.HostName := LHost;
>   conn.DatabaseName := LDBName;
>   conn.UserName := 'sysdba';
>   conn.Password := 'masterkey';
> 
>   writeln('Creating database... ', conn.HostName + ':' + conn.DatabaseName);
>   conn.CreateDB;
>   conn.Connected := True;  // <<-------   This causes the AV under Windows
> end;
> -----------------------
> 
> Here is the console output of when I run the program.
> 
> -----------------------
> c:\programming\m2_system\Scripts>makedb -d '127.0.0.1:c:\programming\data\m2_dl_3019.fdb'
> Creating database... '127.0.0.1:c:\programming\data\m2_dl_3019.fdb'
> exception at 00431BD8:
>  : CreateDB :
>  -I/O error during "open" operation for file ""
>  -database or file exists.
> -----------------------

That is an interbase error. It clearly states what the problem is :)

However, it is strange that the CreateDB() does not catch this error.

Michael.


More information about the fpc-pascal mailing list