参考代码如下:不过只支持2401以后的版本
var
lBizTableDef: TBizTableDef;
begin
CreatePhysicalTable(lBizTableDef, AKeepData);
end;
procedure CreatePhysicalTable(ABizTableDef: TBizTableDef;
const AKeepData: Boolean);
var
lTableDefSchemaTable: TTableDefSchemaTable;
lTableBuilder: TTableBuilder;
const
cDropTab = 'drop table %s';
begin
lTableBuilder := TTableBuilder.Create;
lTableDefSchemaTable := TTableDefSchemaTable.Create(ABizTableDef,
BizSchemaTypes.cDriver_ORACLE);
try
try
lTableBuilder.CreateTable(nil, FConnection, lTableDefSchemaTable, Business.Model.TCreateMode.cmtCreate,
AKeepData, True, -1);
except
on E: Exception do
begin
jsdialogs.ShowError(E.Message, '');
FConnection.ExecuteSQL(SysUtils.Format(cDropTab, [ABizTableDef.ID]),nil, -1, '');
lTableBuilder.CreateTable(nil, FConnection, lTableDefSchemaTable, Business.Model.TCreateMode.cmtCreate,
False, True, -1);
end;
end;
finally
lTableDefSchemaTable.Free;
lTableBuilder.Free;
end;
end; |