-1
我想在嵌入Firebird中创建表格并设置一个自动增量列,但是我不能。我可以创建表格,但不能为自动增量设置列。在Delphi中使用Delphi创建表格和自动增加列
我使用:
火鸟嵌入式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;
请说明问题,并显示您得到的任何错误。另外请注意,您正在尝试一次执行多个语句:Firebird本身不允许这样做,所以请确保这实际上是由您使用的组件支持的(即:它会将它拆分为单独的语句)。 –
不要忘记在每个语句后提交,但我不知道你为什么不在数据库级别而不是在delphi代码中运行这些语句,因为这些语句肯定只会运行一次。 – Fero
@ Fero68在每个DDL语句之后,不需要在整个工作单元之后提交。 –