J'utilise D2K9, Zeos 7alpha et Firebird 2.1Delphi: comment créer la base de données Firebird programme
J'ai eu ce travail avant que j'ajouté le champ autoinc. Bien que je ne sois pas sûr de le faire correctement à 100%. Je ne connais pas l'ordre de faire le code SQL, avec les déclencheurs, les générateurs, etc. J'ai essayé plusieurs combinaisons, je suppose que je fais quelque chose de mal autre que ça pour que ça ne marche pas.
Démo actuelle: http://uploading.com/files/bd64d8m9/createdb.zip/
erreur actuelle:
It's getting an error here:
SQL Error: Dynamic SQL Error SQL error code = -104 Token unknown - line 2, column 1 SET.
Error Code: -104. Invalid token The SQL:
CREATE GENERATOR GEN_EMAIL_ACCOUNTS_ID;
SET GENERATOR GEN_EMAIL_ACCOUNTS_ID À 1;
fichier SQL à partir IBExpert:
/******************************************************************************/
/* Generated by IBExpert 5/4/2010 3:59:48 PM */
/******************************************************************************/
/******************************************************************************/
/* Following SET SQL DIALECT is just for the Database Comparer */
/******************************************************************************/
SET SQL DIALECT 3;
/******************************************************************************/
/* Tables */
/******************************************************************************/
CREATE GENERATOR GEN_EMAIL_ACCOUNTS_ID;
CREATE TABLE EMAIL_ACCOUNTS (
ID INTEGER NOT NULL,
FNAME VARCHAR(35),
LNAME VARCHAR(35),
ADDRESS VARCHAR(100),
CITY VARCHAR(35),
STATE VARCHAR(35),
ZIPCODE VARCHAR(20),
BDAY DATE,
PHONE VARCHAR(20),
UNAME VARCHAR(255),
PASS VARCHAR(20),
EMAIL VARCHAR(255),
CREATEDDATE DATE,
"ACTIVE" BOOLEAN DEFAULT 0 NOT NULL /* BOOLEAN = SMALLINT CHECK (value is null or value in (0, 1)) */,
BANNED BOOLEAN DEFAULT 0 NOT NULL /* BOOLEAN = SMALLINT CHECK (value is null or value in (0, 1)) */,
"PUBLIC" BOOLEAN DEFAULT 0 NOT NULL /* BOOLEAN = SMALLINT CHECK (value is null or value in (0, 1)) */,
NOTES BLOB SUB_TYPE 0 SEGMENT SIZE 1024
);
/******************************************************************************/
/* Primary Keys */
/******************************************************************************/
ALTER TABLE EMAIL_ACCOUNTS ADD PRIMARY KEY (ID);
/******************************************************************************/
/* Triggers */
/******************************************************************************/
SET TERM^;
/******************************************************************************/
/* Triggers for tables */
/******************************************************************************/
/* Trigger: EMAIL_ACCOUNTS_BI */
CREATE OR ALTER TRIGGER EMAIL_ACCOUNTS_BI FOR EMAIL_ACCOUNTS
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(GEN_EMAIL_ACCOUNTS_ID,1);
END
^
SET TERM ;^
/******************************************************************************/
/* Privileges */
/******************************************************************************/
Triggers:
/******************************************************************************/
/* Following SET SQL DIALECT is just for the Database Comparer */
/******************************************************************************/
SET SQL DIALECT 3;
CREATE GENERATOR GEN_EMAIL_ACCOUNTS_ID;
SET TERM^;
CREATE OR ALTER TRIGGER EMAIL_ACCOUNTS_BI FOR EMAIL_ACCOUNTS
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(GEN_EMAIL_ACCOUNTS_ID,1);
END
^
SET TERM ;^
Générateurs:
CREATE SEQUENCE GEN_EMAIL_ACCOUNTS_ID;
ALTER SEQUENCE GEN_EMAIL_ACCOUNTS_ID RESTART WITH 2;
/* Old syntax is:
CREATE GENERATOR GEN_EMAIL_ACCOUNTS_ID;
SET GENERATOR GEN_EMAIL_ACCOUNTS_ID TO 2;
*/
Mon code: Demo dans les commentaires ci-dessous.
Si vous fournissez un tel mur de texte, cela décourage les gens.N'utilisez pas les balises 'code' et' pre', utilisez plutôt le bouton de la barre d'outils de mise en forme du code dans l'éditeur, ou indentez simplement votre code de 4 espaces. En outre, supprimez tout ce qui n'est pas nécessaire pour que les gens comprennent le problème, comme les nombreux commentaires et les lignes vides du script IBExpert. – mghie
Je n'ai pas de barre d'outils de mise en forme du code qui s'affiche ... mais j'essaierai de tout mettre en forme un peu mieux la prochaine fois, même si ça se voit bien dans mon navigateur. – Brad
Il ne s'affiche pas correctement ici (Firefox sur Mac OS X). Et vous devriez avoir le bouton de formatage, c'est celui avec les petits "0" et "1" sur la barre d'outils au-dessus du contrôle d'édition, qui a l'indice "Code Sample ...". – mghie