Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionon va le laisser mariner un peu et s'il revient, on lui donnera un court
et simple exemple
CREATE DATABASE 'c:\test\data.fdb' page_size 8192 user 'SYSDBA' password 'masterkey'; CREATE TABLE TEST ( CODETEST INTEGER NOT NULL, NUMERO INTEGER, NOM CHAR(18) CHARACTER SET ISO8859_1 COLLATE FR_FR); SET TERM ^ ;
SET TERM ^ ; CREATE DATABASE 'c:\temp\data.fdb' page_size 8192 user 'SYSDBA' password 'masterkey'; CREATE TABLE TEST ( CODETEST INTEGER NOT NULL, NUMERO INTEGER, NOM CHAR(18) CHARACTER SET ISO8859_1 COLLATE FR_FR); SET TERM ;^
procedure TForm1.CreateDatabase(ADBFileName: TFilename); var IBDataBase: TIBDatabase; IBTransaction: TIBTransaction; IBSQL: TIBSQL; begin IBDataBase := TIBDatabase.Create(nil); IBTransaction := TIBTransaction.Create(nil); IBSQL := TIBSQL.Create(nil); try IBDataBase.SQLDialect := 3; IBDataBase.Params.Clear; IBDataBase.DatabaseName := ADBFileName; IBDataBase.Params.Add('USER "SYSDBA"'); IBDataBase.Params.Add('PASSWORD "masterkey"'); IBDataBase.Params.Add('PAGE_SIZE 8192'); IBDataBase.CreateDatabase; IBSQL.Database := IBDataBase; IBSQL.Transaction := IBTransaction; IBSQL.Transaction.DefaultDatabase := IBDataBase; IBDataBase.Connected := true; IBSQL.Transaction.StartTransaction; // début transaction try // création table IBSQL.SQL.Add('CREATE TABLE TEST (CODETEST INTEGER DEFAULT 0 NOT NULL, NUMERO INTEGER, NOM CHAR(18) CHARACTER SET ISO8859_1 COLLATE FR_FR) '); IBSQL.ExecQuery; // IBTransaction.CommitRetaining; // validation partielle possible IBSQL.SQL.Clear; // création de la clé primaire IBSQL.SQL.Add('ALTER TABLE TEST ADD PRIMARY KEY (CODETEST); '); IBSQL.ExecQuery; // IBTransaction.CommitRetaining; // validation partielle possible IBSQL.ExecQuery; IBTransaction.Commit; // fin transaction IBSQL.Close; except IBTransaction.Rollback; showmessage('erreur..'); exit; end; ShowMessage('la création de la base est terminée !'); finally IBDataBase.Connected := false; FreeAndNil(IBTransaction); FreeAndNil(IBDataBase); FreeAndNil(IBSQL); end; end;