I was struggling to get ISQL to work with my Firebird Embedded database files until I stumbled upon a little nugget of information in one of my many google searches.
The problem was that ISQL wasn't using the embedded client! Doh!
The fix was simple! To get ISQL working the way I needed it to all I had to do was:
- Copy isql.exe into the Firebird embedded directory.
- Rename fbembed.dll to fbclient.dll
isql.exe" -q -i myDatabase.sql
where the file myDatabase.sql contains:
CREATE DATABASE 'TEST.FDB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 8192
DEFAULT CHARACTER SET NONE;
CREATE ROLE RDB$ADMIN;
CREATE TABLE MYTABLE(
ID INTEGER NOT NULL,
NAME VARCHAR(500) NOT NULL
);
ALTER TABLE MYTABLE
ADD CONSTRAINT PK_MYTABLE_1
PRIMARY KEY (ID);
COMMIT;
Why did I want to do this?
My want was driven by a desire to have my build server create/modify database files for our product install. Treating the database creation scripts like code negates the need for a "Golden" database file that no one, other than myself, knows how to create.