`
isiqi
  • 浏览: 16497174 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

关于数据库字典的汉字注释维护

SQL 
阅读更多
关于数据库字典的汉字注释维护
(深圳:独孤求败2003-05-16)
众所周知,datawindow是PB的灵魂,但由于一般的数据库只支持英文字段名,所以字段的header和label也是英文的,给数据窗口对象设计带来极大的不方便,每次重画一次数据窗口对象都要重新输入一次汉字。虽然在数据库画板中可以一次性地把字段的header和label都设置成汉字,但总觉得其过于繁锁,也不方便维护,有没有什么更好的方法呢?
本人就是带着这一疑问进行了一番探索,终于如愿,现提出来与大家分享。
大家都知道,数据库表的属性,包括header和label的汉字注释均存放在数据库系统表中,但由于数据库系统表不容人置喙,“系统”两字咳住了不少人。其实只要知道其意义,不难对它操作自如。本文别找曲径,实现步骤如下:
1、创建数据窗口d_table的SQL语法:
SELECTTable_name,Comments
FROMuser_tab_comments
WHEREtable_type='TABLE'andtable_namelike:as_like
ORDERBYtable_nameasc
2、创建数据窗口d_col的SQL语法:
SELECTa.cname,b.comments,b.table_name,b.column_name,a.coltype,a.width,a.scale,
a.precision,a.nulls,a.defaultval,a.colno
FROMcola,user_col_commentsb
WHEREa.tname=b.table_nameANDa.cname=b.column_nameANDa.tname=:as_table
ORDERBYcolon
3、创建窗口w_wh_sjzd,窗口上放置控件如下:
控件名属性值
DatawindowControlNameDw_1
DataobjectD_table
DatawindowControlNameDw_2
DataobjectD_col
CommandButtonNameCb_save
Text保存
CommandButtonNameCb_close
Text关闭
4、定义实例变量:
stringis_ownr//数据库登录用户名称
窗口w_wh_sjzd的open事件
dw_1.settransobject(sqlca)
dw_2.settransobject(sqlca)
dw_1.retrieve()
5、数据窗口控件dw_1的pfc_updaterow用户自定义事件:
stringls_table,ls_comment,ls_sql
longll_row,ll_count,i
stringls_newrow,ls_tt
this.accepttext()
ll_count=this.rowcount()
fori=1toll_count
ls_tt="evaluate('IsRowModified()',"+string(i)+")"
ls_newrow=this.Describe(ls_tt)
ls_table=this.object.table_name[i]
ls_comment=this.object.comments[i]
ls_table=this.object.table_name[i]
//判断是否修改过
ifls_newrow='true'then
ls_sql="commentontable"+ls_table+"is'"+ls_comment+"'"
ifnotisnull(ls_sql)then
EXECUTEIMMEDIATE:ls_sql;
endif
//设置表名汉字注释
ifls_comment<>''then
insertintoSYSTEM.pbcattbl(pbt_tnam,pbt_ownr,pbt_cmnt)
values(:ls_table,:is_ownr,:ls_comment);
ifsqlca.sqlcode=-1then
updateSYSTEM.pbcattbl
setpbt_tnam=:ls_table,
pbt_ownr=:is_ownr,
pbt_cmnt=:ls_comment;
endif
endif
endif
next
commit;
6、数据窗口控件dw_1的rowfocuschanged事件:
stringls_xx
ifcurrentrow>0then
ls_xx=this.object.table_name[currentrow]
dw_2.retrieve(ls_xx)
endif
7、数据窗口控件dw_2的pfc_updaterow用户自定义事件:
stringls_table,ls_comment,ls_col,ls_sql
longll_row,ll_count,i
stringls_newrow,ls_tt
this.accepttext()
ll_row=dw_1.getrow()
ifll_row<0orisnull(ll_row)thenreturn
ls_table=dw_1.object.table_name[ll_row]
ll_count=this.rowcount()
fori=1toll_count
ls_tt="evaluate('IsRowModified()',"+string(i)+")"
ls_newrow=this.Describe(ls_tt)
ls_col=this.object.col_cname[i]
ls_comment=this.object.user_col_comments_comments[i]
ls_col=this.object.col_cname[i]
//判断是否修改过
ifls_newrow='true'then
ls_sql="commentoncolumn"+ls_table+"."+ls_col+"is'"+ls_comment+"'"
ifnotisnull(ls_sql)then
EXECUTEIMMEDIATE:ls_sql;
endif
ifls_comment<>''then
//设置header、label和字段名的汉字注释
insertinto"SYSTEM"."PBCATCOL"(pbc_tnam,pbc_ownr,pbc_cnam,pbc_labl,pbc_hdr)values(:ls_table,:is_ownr,:ls_col,:ls_comment,:ls_comment);
ifsqlca.sqlcode<>0then
UPDATE"SYSTEM"."PBCATCOL"
SET"PBC_TNAM"=:ls_table,
"PBC_OWNR"=:is_ownr,
"PBC_CNAM"=:ls_col,
"PBC_LABL"=:ls_comment,
"PBC_HDR"=:ls_comment;
endif
endif
endif
next
commit;
8、按钮cb_save的点击事件:
SetPointer(HourGlass!)
dw_1.dynamiceventpfc_updaterow()
dw_2.dynamiceventpfc_updaterow()
SetPointer(Arrow!)
9、按钮cb_close的点击事件:
close(parent)
分享到:
评论

相关推荐

    U8数据字典V12.0.rar全中文版

    用友U8数据字典大全 用友U812.0数据字典非常全的数据字典。

    PHP实现获取并生成数据库字典的方法

    代码中还存在一些小错误,例如变量拼写错误(如"TABLES"的拼写),以及中文注释部分出现了乱码或不完整的字符,这些可能是由于文档扫描或编码问题导致的。在实际使用时,开发者需要修正这些问题,以确保代码能够正常...

    PowerDesigner生成数据字典(包含反向工程生成方法).docx

    它包含了所有数据库对象的详细描述,如字段名、数据类型、长度、约束条件、注释等,对于数据库设计、维护和理解数据结构至关重要。 #### PowerDesigner的功能 PowerDesigner是一款集数据建模、应用程序建模和企业...

    汉字转拼音五笔access对照库(新华字典2万多字).rar

    为了解决这一问题,就有了“汉字转拼音五笔Access对照库”——这是一个基于Microsoft Access数据库系统构建的工具,包含了新华字典中的两万多个汉字的相关信息。 这个数据库涵盖了汉字的基本元素,如汉字本身、拼音...

    Ecshop2.7.3最新数据字典

    本文将根据Ecshop 2.7.3的数据字典文档对其中的关键数据库表进行详细介绍,包括表结构、字段定义及用途等。 #### 二、具体表介绍 ##### 1. ecs_account_log — 用户账目日志表 **表注释**:记录用户的账目变动...

    SQL Server 2000 数据库结构说明(字典管理)

    本软件用语数据库结构的备注和说明,可以从数据库中导入结构保存成本地文档,给各种数据库对象增加备注和中文名称,可以地生成Word、Excel、HTML格式的数据库文档。目前只写了针对于Sql Server2000数据字典管理。

    VFP数据库的创建与维护学习教案.pptx

    VFP(Visual FoxPro)是一种关系型数据库管理系统,用于创建和维护数据库。在这个VFP数据库的创建与维护学习教案中,主要涵盖了以下几个重要的知识点: 1. **数据库的先期规划与设计**:在创建数据库之前,需要进行...

    Activiti5.22中文开发指南(数据库版).pdf

    Activiti5.22中文开发指南是指导用户如何使用Activiti5.22版本进行开发的手册,针对数据库层面有详细的描述和解释。 首先,Activiti5.22的数据库共有25张数据表,命名规则清晰,每张表都以ACT_开头。表名分为三段,...

    SAP-HANA数据库SQL参考手册.pdf(中文版)

    SAP HANA数据库是一种内存计算型数据库,它提供了高性能的数据处理能力,特别适合处理实时分析和业务应用。在SAP HANA体系中,SQL语言的使用规则十分关键,它规定了如何在SAP HANA中执行数据的增加、删除、修改和...

    康熙字典1.0 免费绿色汉化版

    《康熙字典1.0 免费绿色汉化版》是一款专为中文学习者和研究者设计的软件,它基于清代著名的《康熙字典》编纂而成,旨在提供全面的汉字查询服务。这款免费的汉化版本使得用户无需支付任何费用即可享用其丰富的功能。...

    数据库标准规范数据库标准规范.ppt

    - **注释**:每个表和字段应有中文注释,以提高可读性。 - **索引**:根据数据特点选择合适的索引类型,如B-TREE、位图索引等,并遵循特定的命名规则。 - **视图**:限制视图的使用,以降低解析和维护成本。 - *...

    易语言拼音字典

    易语言拼音字典是一款专为易语言编程环境设计的工具,它主要提供了汉字与拼音之间的转换功能,方便程序员在编写程序时进行汉字处理。这款字典的源码开放,允许用户进行二次开发和定制,以适应不同的项目需求。 首先...

    PowerDesinger数据字典制作

    可能的用途是将特定格式的注释(例如英文名)转换为其他格式(如中文名),以便更好地适应中国用户的需求。在实际应用中,你可以根据需要修改这个脚本来实现批量处理模型中的注释,节省手动修改的时间。 至于“数据...

    asp新华字典源码-详细的字典源码

    7. `说明.htm`:这个文件可能是对整个字典系统的使用指南或开发者注释,包含了关于如何使用系统以及源码的详细信息。 在ASP新华字典源码中,主要涉及的技术包括: - **ASP脚本**:编写动态网页的代码,通过...

    SEER

    用于有效强化学习(SEER)的存储嵌入 官方代码库,用于来。 Rainbow代码库最初是从Kaixhin的分叉的,而CURL代码库最初是从分叉的。 BibTex 彩虹+ SEER 指示 请参阅Kaixhin的。 其他超参数是steps_until_freeze。...

    新华字典查询网站

    关于【描述】中的内容,我们知道这个字典收录了二万多个汉字,这就需要一个强大的数据库来存储这些数据。在ASP环境中,可能会使用Access、SQL Server等数据库管理系统来存储和管理这些汉字数据。每个汉字的信息可能...

    数据库设计工具1

    如果表没有中文名注释,用户可以手动添加,工具会自动生成注释语句。此外,工具还能删除不必要的工作表,并根据数据库中的表信息创建新的工作表,每个表的信息都会被放置在以表名或注释为名称的新工作表中。 表链接...

    用友 U852 数据字典

    用友 U852 的数据字典,对u852的各表及各字段都有中文注释。

    数据库设计

    本规范的核心目的是确保所设计的数据库结构合理、易于维护,并能够有效地支持业务需求。此外,规范化的数据库设计有助于提高开发效率、减少错误,并促进团队之间的协作。 #### 二、适用范围 本规范适用于关系...

    XX健康体检服务管理平台数据库设计说明书.docx

    3. 注释约定:数据库中的注释使用中文或英文,例如“体检套餐表”或“Exam Table”等。 该平台的数据库设计主要包括逻辑结构设计、物理结构设计、数据结构与程序的关系、数据库对象命名约定、数据字典设计、使用它...

Global site tag (gtag.js) - Google Analytics