Я использую D2K9, Zeos 7альфа и Firebird 2.1Delphi: как создать Firebird базе данных программно
Я имел эту работу, прежде чем я добавил поле AutoInc. Хотя я не уверен, что делал это на 100% правильно. Я не знаю, что делать с кодом SQL, с триггерами, генераторами и т. Д. Я пробовал несколько комбинаций, я предполагаю, что я делаю что-то неправильно, кроме того, что это не сработает.
Текущий Демонстрационный: http://uploading.com/files/bd64d8m9/createdb.zip/
Текущая ошибка:
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 ГЕНЕРАТОР GEN_EMAIL_ACCOUNTS_ID К 1;
SQL файл из 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 */
/******************************************************************************/
Триггеры:
/******************************************************************************/
/* 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 ;^
Генераторы:
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;
*/
Мой код: Demo в комментариях ниже.
Если вы предоставляете такую стену текста, это препятствует людям.Не используйте теги 'code' и' pre', вместо этого используйте кнопку панели инструментов форматирования кода в редакторе или просто присвойте свой код четырьмя пробелами. Кроме того, удалите все, что не нужно людям, чтобы понять проблему, например, многие комментарии и пустые строки, которые имеет сценарий IBExpert. – mghie
У меня нет панели инструментов форматирования кода, которая появляется ... но в следующий раз я попытаюсь отформатировать все немного лучше, хотя в моем браузере это проявилось хорошо. – Brad
Здесь не отображается (Firefox в Mac OS X). И вы должны иметь кнопку форматирования, это та, которая имеет небольшие «0» и «1» на панели инструментов над элементом управления редактирования, в котором есть подсказка «Образец кода ...». – mghie