如何根据已有表的结构创建新的空表?(300分)

  • 主题发起人 主题发起人 Croco
  • 开始时间 开始时间
C

Croco

Unregistered / Unconfirmed
GUEST, unregistred user!
如何根据已有表的结构创建新的空表?
需要说明的是:本地Paradox表。
一、使用TBatchMove复制时至少复制一条记录,且没有复制索引。
二、使用dbiCopyTable函数时则是把所有的记录都复制过来了。
有什么办法解决?
 
一、使用TBatchMove,属性Source用TQuery,SQL这样写 select * from 表 where 1=2
Mode属性用batCopy,这样就不用复制一条记录了。
建索引干什么,用Paradox表我从不建索引。
 
tinytao>>
老大,这样虽然没有复制一条记录,但会丢掉字段的Required属性。:-(
 
tinytao:建索引干什么,用Paradox表我从不建索引?!!
好酷啊
 
能不能在复制以后再delete?
 
编程取出源表的字段参数,用它们创建新表。深度历险有控件及源码。

1 SX.ZIPTSxTable 式改良版的 TTable 构件,提供建立暂存Table 及对 Table 排序的功能
( 1.0 版,附源码 ),作者 : Michele Palmieri。

2. XDBF2PAS.ZIPXDbf2Pas 构件能够指定一个 DBF 档,自动产生一个.PAS 的 Object Pascal 单元源码,
里面包含了一个过程,只要执行这个过程就会自动建立该.DBF 档及相关索引档,
原本储存在数据库内的数据也会一并产生於源码中,作者 : ShareWiz International。

 
可以先复制后再将纪录删除就行了。
 
sonie,飘摇客>>
如何带索引的复制。
 
SourceTb.Open;
SourceTb.IndexDefs.Update;
with DestTb do begin
Active := False;
TableType := ttParadox;
TableName := 'NewOprat';
FieldDefs := SourceTb.FieldDefs;
IndexDefs := SourceTb.IndexDefs;
CreateTable;
end;
 
Select * into newtable from oldtable where 1=2
然后在建索引,Create index...
 
接受答案了.
 
后退
顶部