起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 332|回复: 7

【结】如何快速建立数据字典

[复制链接]
发表于 2010-4-16 13:02:02 | 显示全部楼层 |阅读模式
请问,如何根据已有的数据字典,建立一模一样的新的数据字典。且不要已有的查找属性、自动填充等。

原因如下,查找属性太慢了,所以通过写sql建立了新的视图(视图中将编码转换成了汉字),执行速度很快,解决了查找属性的问题。
但视图中的字段是英文名,如果想转换英文名,需要在X3中建立数据字典,表名改为视图名。
需要新建的数据字典太多,字段也多,且拷贝后,查找属性和自动填充等也需要删除。很繁琐。
请问有没有什么好的方法?
回复

使用道具 举报

 楼主| 发表于 2010-4-16 13:22:52 | 显示全部楼层
没看到文字哦
回复 支持 反对

使用道具 举报

发表于 2010-4-16 14:19:17 | 显示全部楼层
目前没有好的方式,因为是直接操作数据库的表,如果是修改业务数据集上的定义,就是 的倒是可用代码来修改。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-17 10:06:24 | 显示全部楼层
已经试过了,论坛上有代码,可以将已有的表名、字段名等信息导到表里,再通过循环调用表里的数据,来批量建数据字典。
可以用的。
回复 支持 反对

使用道具 举报

发表于 2010-4-17 15:40:38 | 显示全部楼层
楼主,把帖子编号贴出来,我也学习学习
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-17 22:01:33 | 显示全部楼层
procedure TMainForm.Button1Click(Sender: TObject);
const DBURL = 'Biz:\XXX\XXXX.Database';
var
  I: Integer;
  lBizFieldItem: TBizFieldItem;
  lDesc: TTableDefDesc;
  lCreator: TTableDefCreator;
begin

  lDesc := TTableDefDesc.Create(nil);
  //可从从设备对照表中得到多个表 with query_tables do
  lDesc.FileName := 'SJB998.Table';
  lDesc.DisplayName := '数据表998';
  //lDesc.CreateMode := TCreateMode.CmNew;    //新建不存在的'SJB1.Table'
  lDesc.CreateMode := Business.Forms.TCreateMode.cmNew;

  lDesc.LanguageExt := '.pas';
  //lDesc.TableDef :=.... 定义TableDef
  
  //可根据表,得到该表的字段  with query_fields do
  lBizFieldItem := TBizFieldItem.Create(nil);
  lBizFieldItem.ID := 'ZD1';
  lBizFieldItem.DisplayName := '字段1';
  //根据字段是varchar、datetime、num等,对字段的类型和长度进行赋值。
  lBizFieldItem.DataType := TDataType.dtString;
  lBizFieldItem.Size := 32;
  lBizFieldItem.IsPrimaryKey := true;
  lDesc.TableDef.FieldDefs.Add(lBizFieldItem);
  lCreator := TTableDefCreator.Create;
  try
    lCreator.Execute(Business.Model.BizSys.ObjectInfo(DBURL).BizURL, lDesc,BizSys.GlobalContext);
    lCreator.Save;
  finally
    lBizFieldItem.Free;
    lDesc.Free;
    lCreator.Free;
  end;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-4-17 22:03:57 | 显示全部楼层
参考的帖子的主题是
【搞定】关于数据字典执行TTableDefCreator.Execute的问题
回复 支持 反对

使用道具 举报

发表于 2010-4-19 10:31:36 | 显示全部楼层
谢谢楼主共享,学习,结贴。
不过这个会了,http://bbs.justep.com/forum.php?mod=viewthread&tid=32122 应该比较简单了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-9 19:02 , Processed in 0.038461 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表