使用Delphi在Firebird中创建表和自动增量列

时间:2017-02-14 11:27:55

标签: delphi firebird auto-increment unidac

我想在Firebird中创建表格并设置一个自动增量列,但我不能。我可以创建表格,但不能设置自动增量列。

我正在使用:
Firebird嵌入式2.5
德尔福xe3
UniDAC Componnent

我的SQL命令:

with UniSQL1 do
  begin
    SQL.Text := 'Create TABLE tab1(EMP_NO EMPNO NOT NULL, '+
  'FIRST_NAME           "FIRSTNAME" NOT NULL, '+
  'LAST_NAME             "LASTNAME" NOT NULL, '+
  'PHONE_EXT                VARCHAR(     4)  COLLATE NONE, '+
 'PRIMARY KEY (EMP_NO) '+
  '); '+
  'CREATE GENERATOR gen_tab1_EMP_NO; '+
  'SET GENERATOR gen_tab1_EMP_NO TO 0; '+
  'SET TERM !! ; '+
  'CREATE TRIGGER SET_EMP_NO FOR tab1 ACTIVE BEFORE INSERT POSITION 0 AS '+
  'BEGIN '+
      'if (new.emp_no is null) then '+
      'new.emp_no = gen_id(gen_tab1_EMP_NO, 1); '+
  'END !!'+
  'SET TERM ; !!';

    try
       Execute;
       ShowMessage('Table Created');
    except
       ShowMessage('Table Not Created');
    end;
  end;

1 个答案:

答案 0 :(得分:0)

试试这个并查看出现错误的位置。您也可以尝试保存脚本并在IBExpert或其他工具上执行,看看是否正常运行。

0 = {EntityManagerFactoryBuilderImpl$ServiceRegistryCloser@6990} 
1 = {SessionFactoryImpl$1IntegratorObserver@7021} 
2 = {HibernateSearchSessionFactoryObserver@7105}