您的位置:首页 > 编程语言

使用代码创建一个kbmMemTable数据表

2008-04-06 23:54 489 查看
在程序中,有时表结构可能是未知的,这时就不能事先创建好一个表了,使用如下代码可动态创建一个内存表:

with kbmMemTable1 do

begin

Close;

MasterSource:=nil;

// Define data fields.

with kbmMemTable1.FieldDefs do

begin

Clear;

Add('Period', ftInteger, 0, false);

Add('VALUE', ftInteger, 0, false);

Add('String', ftString, 30, false);

Add('BytesField', ftBytes, 20, false);

Add('Color', ftInteger, 0, false);

Add('Date', ftDate, 0, false);

Add('Bool', ftBoolean, 0, false);

Add('Memo', ftMemo, 0, false);

Add('AutoInc', ftAutoInc,0,false);

Add('Currency',ftCurrency,0,false);

end;

// 定义索引字段

with kbmMemTable1.IndexDefs do

begin

Clear;

Add('Period','PERIOD',[]);

Add('Index1','VALUE',[ixdescending]);

Add('StringIndex','String',[]);

Add('combined','PERIOD;VALUE',[]);

Add('descending','PERIOD',[ixDescending]);

// Add('Index2','Color;Period',[]);

end;

// 创建表

CreateTable;

//显示格式

TCurrencyField(FieldByName('Currency')).DisplayFormat:='$###0.00';

// 设置字段事件.

with FieldByName('BytesField') do

begin

OnSetText:=kbmMemTable1BytesFieldSetText;

OnGetText:=kbmMemTable1BytesFieldGetText;

end;

// 索引及排序

IndexFieldNames := 'VALUE';

end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐