Subject Re: [firebird-support] Database works fine but phsical storage file is not exist. How ?
Author Helen Borrie
At 08:10 PM 11/06/2008, you wrote:
>Versions of my binaries are :
>Windows XP Home 2002 Tur(1254) SP3
>fbserver.exe v2.0.3.12981
>isql.exe v2.0.3.12981
>
>I kept Firebird conf file as untouched.
>I setup both Firebird Guardian and Firebird Server as service :
>Startup type: automatic
>Logon as: Local System account
>
>
>I started isql.exe and create some objects as below:
> Use CONNECT or CREATE DATABASE to specify a database
> SQL> create database 'localhost:abc' user 'SYSDBA' password
>'masterkey';
> SQL> create table a(f1 VARCHAR(10));
> SQL> show tables;
> A
> SQL> insert into a(f1) values('123');
> SQL> select * from a;
>
> F1
> ==========
> 123
>
> SQL> commit;
> SQL> quit;
>
>I restart Windows(not hibernate, etc.). It restarted normally (no forced
>termination of any process occured).
>
>I started isql again :
> Use CONNECT or CREATE DATABASE to specify a database
> SQL> connect 'localhost:abc' user 'SYSDBA' password 'masterkey';
> Database: 'localhost:abc', User: SYSDBA
> SQL> select * from a;
>
> F1
> ==========
> 123
>
> SQL> quit;
>
>Now I can not find abc.fdb file in none of my local drives (I searched
>hidden attr also).
>So, where did firebird store my new database ?

1. Your database's file name is not 'abc.fdb'. You created it as 'abc' so you are looking for a database named 'abc'.
2. The engine would create the database in whatever directory was the current directory at the time. It is very foolish to create databases without an explicit location in mind.

I strongly recommend that you figure out a good place to store databases and always create them with a proper full path.

Tip: suppose you have a location d:\databases where you will create and access your databases. You want to create a database there, named 'abc.fdb'. OK, open up aliases.conf and add this:

abc = d:\databases\abc.fdb

Save aliases.conf.

Now, you can create a database using the same statement as you used before. But now the engine will recognise 'abc' as an alias and will create abc.fdb in d:\databases\

./heLen