내가이 자동 증가 (Autoinc) 필드를 추가하기 전에이 작업을했다 D2K9, ZEOS 7Alpha, 그리고 파이어 버드 2.1델파이 : 프로그래밍
을 사용하고 파이어 버드 데이터베이스를 생성하는 방법에 대해 설명합니다. 내가 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; IBExpert에서
SQL 파일 :
/******************************************************************************/
/* 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;
*/
내 코드 : 아래의 의견에 데모.
당신이 그런 성의 벽을 제공하면 사람들을 낙담 케합니다.'code'와'pre' 태그를 사용하지 말고 편집기에서 코드 서식 도구 모음 단추를 사용하거나 코드를 4 칸 들여 쓰기 만하면됩니다. 또한 IBExpert 스크립트에있는 많은 주석과 빈 줄과 같이 사람들이 문제를 이해하는 데 필요하지 않은 모든 것을 제거하십시오. – mghie
코드 서식 도구 모음이 표시되지 않습니다. 그러나 브라우저에서 문제가 없지만 다음 번에 모든 것을 좀 더 형식화하려고 노력할 것입니다. – Brad
여기에 제대로 표시되지 않았습니다 (Mac OS X의 Firefox). 그리고 포맷 컨트롤 버튼 위에 작은 "0"과 "1"이있는 포맷팅 버튼이 있어야합니다.이 코드는 힌트 "코드 샘플 ..."을 가지고 있습니다. – mghie