说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

建立自己的数据字典库-Delphi资料

HTML文档下载 WORD文档下载 PDF文档下载
建立自己的数据字典库-Delphi资料

当开发一个稍大一点的数据库程序时,往往会涉及许多表。这些表的

管理就成为一个问题了。Delphi3(C/S)提供了数据字典的功能,

但有一定的局限性,而且该数据字典的功能中有BUG。我一般都自己

建一个数据字典库来管理一个工程中的许多表,工程中所有的表在字

典库中都有详尽的描述,便于管理和维护。这样不论时过多久,工程

中所有的表都能尽在掌握之中的。若对数据库结构只作很小的改动时,

只在数据字典库中进行,然后由程序来动作创建表,既快而又不容易

出错。可以详尽地描述一个字段的名称、类型、显示名称,提示数据

库,提示字段、是否为索引字段、是否允许修改等等。用户可以随时

修改字段的显示标题(Title)

提示内容等而不必修改程序本身。

对于使用DBGrid控件来说,完全可以由程序来实现各个Colum的标

题、提示等内容的填写。不必很麻烦地一个个地去设计DBGrid的每

一个Column,也不会因为失误或结构的修改或其他原因导致要重新

将DBGRid的各个Column设计一遍这种麻烦而又可能导致新的错误

的重复性劳动。由于能自动填写显示标题,提示内容等功能,就不

用在屏幕上放很多TTable的可视化小方块图形了,只要处理过程

不冲突,就可以共用一个TTable控件,也就可以相对地节约一些

系统资源了。总之我认为采用数据字典库好处很多的。我这里有一

个实际的字典库使用的例子,该例子是为了给指定的DBGrid控件填

写各个字段的显示标题(DiplayLabel),提示内容(PickList)的

供参考:

procedure TFMlrxz.GetDisplayName( pform:tform; PDB:TTable; PGD:TDBGrid );

var

i: integer;

fdnm: String[25];

fdnma: array[0..40] of Char;

fdnmp: PChar;

lktb

rgstart

rgend

rgfd: String[12];

lkfd: string[20];

tskm

tszd: Variant;

begin

amkey := "";

asubkey := "";

for i := 0 to 40 do

azdxwm[i] := "";

with pdb do

begin

fdnm := upperCase(Pgd.Fields[0].FieldName);

if lowercase(pform.name) = "fmlrsj" then

jskm := xzzkm

else

jskm := xzkm;

if locate("bxwm; zdxwm"

VarArrayOf([jskm

fdnm])

[loCaseInsensitive] ) then

begin

keycount := fieldbyname("keycount").asinteger;

for i:=0 to Pgd.FieldCount-1 do

begin

fdnm := upperCase(Pgd.Fields[i].FieldName);

Pgd.Fields[i].DisplayLabel := FieldByName("zdhzm").AsString;

PGD.Columns[i].Title.Alignment := taCenter;

azdxwm[i] := fdnm;

if lowercase(pform.name) = "fmlrxz" then

begin

if (azdxwm[i]="DX") or (azdxwm[i]="XT") or (azdxwm[i]="RW") then

PGD.Columns[i].field.OnChange := Fmlrsj.dbxhDXChange;

azbbh[i] := fieldbyname("zbbh").asstring;

if length(fieldbyname("gjz").asstring)<> 0 then

amkey[i] := fieldbyname("gjz").asstring[1];

end;

if (lowercase(pform.name) = "fmlrsj")

and (length(fieldbyname("gjz").asstring)<> 0) then

asubkey[i] := fieldbyname("gjz").asstring[1];

{ ************************************************************ }

lktb := FieldByName("LookTable").AsString;

lkfd := FieldByName("LookField").AsString;

if (Length( lktb ) <> 0) then

begin

DBtemp1.Active := False;

if FieldByName("tbname").AsString = "ZD" then

DBtemp1.DatabaseName := "jzglzd"

else

DBtemp1.DatabaseName := "jzgl";

DBtemp1.TableName := lktb;

DBtemp1.Active := True;

DBtemp1.First;

PGD.Columns[i].PickList.Clear;

{ ************************************************************** }

if lktb = "tsdict.db" then

begin

// tskm := xzkm;

tszd := fdnm;

with dbtemp1 do

if (locate("tszdxw"

tszd

[loCaseInsensitive]))

and (length(FieldByName("tsnr").AsString) <> 0 ) then

begin

fdnm := FieldByName("tsnr").AsString;

PGD.Columns[i].PickList.Add(fdnm);

next;

while (length(FieldByName("tszdxw").AsString) = 0)

and (not eof) do

begin

fdnm := FieldByName("tsnr").AsString;

PGD.Columns[i].PickList.Add(fdnm);

next;

end;

end;

end {end of "tsdict"}

else

begin

if (dw <> "k00") and ((lktb = "dwdzdict.db") or (lktb = "zdming.db")) then

begin

{if lktb = "dwdzdict.db" then

begin

rgstart := "-0000";

rgend := "-9999";

rgfd := "dwdz";

end; }

if lktb = "zdming.db" then

begin

rgstart := "00";

rgend := "99";

rgfd := "zddz";

end;

with DBtemp1 do

begin

SetRangeStart; { Set the beginning key }

FieldByName(rgfd).AsString := dw + rgstart;

SetRangeEnd; { Set the ending key }

FieldByName(rgfd).AsString := dw + rgend;

ApplyRange; { Tell the dataset to establish the range }

end;

end; {end of "dw <> k00 }

while not DBtemp1.Eof do

begin

fdnm := DBtemp1.FieldByName(lkfd).AsString;

PGD.Columns[i].PickList.Add(fdnm);

DBtemp1.Next;

end;

end;{ end of else}

PGD.Columns[i].ButtonStyle := cbsAuto;

PGD.Columns[i].DropDownRows := 10;

end; {end of length(lktb)<>0}

next;

end; {end of for i:=0 to Pgd.FieldCount-1}

end {end of if locate}

else

begin

fdnmp := @fdnma;

StrPcopy(fdnma

fdnm);

StrCat(fdnmp

:不在字段名库中

);

Application.MessageBox( fdnmp

提示信息

mb_OK );

end;

end;

end;

高效敏捷的十大经验法则 佛瑞斯特资讯公司预测2013年云计算的十个变化 百会中小企业CRM年会成功举办 发布CRM选型指南 诺基亚创新体验中心NEIC训练团正式开班 新威胁:IE新漏洞允许网站跟踪鼠标 少编码多思考:代码越多 问题越多 [简讯] JDK 7u10发布 修复安全漏洞 搜狗茹立云:为何搜狗语音助手比Siri更精准? BlackBerry 10最终版SDK Gold发布 谷歌地图正式登陆App Store 为开发者推出SDK 你的云数据的三个最大威胁 公开叫板:Google不打算推出Win8版Gmail和Drive APP备案风波:开发者何去何从? 32位和64位的JVM 我该选择哪个呢? 黑莓“Got Game Port-a-Thon”活动将于12月22日在北京举行 专访Moti Joseph:浏览器安全的经验之谈 四大开源云平台的命运基因 FPS移动游戏:画质不是第一位,操控才是死穴 微软2013年的五个安全预测 应用成武器 王淮,大城小胖论辩HTML5 局部有小雨 技术人员创业后就不再适合继续编码了? Google Dremel vs Apache Hadoop 低功耗之争:英特尔 VS ARM NEIC-诺基亚体验创新中心 助力开发者创享新移动互联时代 Google地图主管Daniel Graf:新设计,新目标 浴火重生:OpenFeint创始人推开源平台OpenKit 紧随AWS数据仓库服务 Rackspace力鼎Cloudant 创业者谈:畏惧失败,但也要拥抱失败 谷歌赢得一场战斗 苹果能否赢得战争? 走进大学校园:是什么让学生成为独立开发者? 移动周报:为什么说独立开发者才是光明康途? 百分求方案!!请大家不吝赐教!(报表汇总,打印相关,有一定难度!!!) 干掉最大化按钮! 谁能帮我解释一下Petzold这些话的意思: 绝对给分,谢谢各位大侠帮我解决这个很简单的问题罗!:( 关于古老的DDE通信的几个头痛的问题. yangrenzhi你今天怎么啦,有事就说出来啊 如何获得一个变量的字节长度 关于JAVA的简单问题(送分) 为什么不能筛选数据? 有关Acrobat 组件的错误 关于火车查询 CTreeCtrl 的同一item项被多次点击时,会出发什么消息?你知道吗? WINCE的市场 控件ID有何用? 初学XML,请问ASP传回的中文字怎么是乱码? 请问圆锥体侧面积计算公式是什么?快阿,正在考试!!!!!!!!!!!!!! (♂逍遙剑♂) 过来聊聊!进来! 怎样用文件的形式对数据库进行备份? 能在标题栏添加控件吗?谁能告诉我? 谁知道在Activex控件中事件执行顺序的问题 3山好可怜,被女人抓住了把柄,知道了粗细长短,哎。。。 想在odbc里用程序的方法建立驱动,怎么实现? vc编的DLL怎样处理LIB在BCB中可以直接用哦?我用WINAPI那个约定 救命的!!! 深圳的“同志”好多啊!有一个哥们还向我推荐了一个同志网站,可惜我不是同志,如果有同志需要的话,可以去找那些深圳同志接头! 有懂EJB ,weblogic 大连的朋友吗? to fightwolf:give she some color to see see. 装delphi 6之前是不是要装ie5.5? 现在有一个问题:在大数据量传输的情况下,想采用异步传送方式,请问如何实现? 关于比例问题!! 有人说:做程序员很累,但我很快乐?广大程序员朋友们,有谁同意这个说法吗? 那该怎么办? MFC开发的ActiveX怎么都是OCX,可不可以是DLL,如果可以该怎么做。 如何获得当前活动控件的引用? 哪里有获得指定IP地址的机器网卡MAC地址的源程序? 新手上路:请问系统安全的市场前景如何? 'select * from a where b like ''[as]%'''这一句有没有错呢? 哪能找到 VBScript 5.0 的联机文档 为什么第七期的杂志我还没收到啊!!~~,原以为提前先订几期,会早点收到!唉!~~ php打开CSV文件的问题!答来分去! 各位有用过aspchart这个控件的吗?为什么我不能生成图片呢? 我有一个问题大家帮我UP一下 用HTML可以制作留言版吗?有使用mailto的吗? 大哥们,小弟我准备学JAVA了给推荐几本好书吧!小弟不胜感激啊! 因为JAVA,我差点把机子砸了 网络协议相关——向大侠请教 longyear,来一下啊。 我的一个在installshield for vc6.0下制作的安装程序用installshield professional 6.1编译时出错 在运行期间只有这个控键的句柄如何知道它是不是TForm? 如何动态生成组件? CTreeCtrl 的item项已被选中,再次点击怎么触发同样的事件?我明白了,你明白了没有? 中和100mL 1mol/L的H2SO4溶液,需要多少g 实验室用固体烧碱配置500mL0.1mol/L的NaOH溶液是为什么需要500mL试剂瓶?(已有500mL容量瓶了) 向100mL 1mol/L的AlCl3溶液中,逐滴加入2mol/L的NaOH溶液,得到3.12g沉淀,则加入的NaOH溶液的体积是n(Al(OH)3)=3.12/78=0.04molV1=0.04*3/2=0.06L=60mLV2=(0.04*3+0.06*4)/2=0.18L=180mLAC 我想问一下V2怎么来的 中和100ml 1mol/L的硫酸 需要多少的NaOH? 实验室欲配制1mol/L的氢氧化钠溶液250mL①用托盘天平称取氢氧化钠固体-------克②将称好的氢氧化钠固体放入---------中,加-------蒸馏水将其溶解,待-------后将溶液沿---------移入---------mL的容量瓶 实验室需0.1mol/L氢氧化钠溶液100mL,现有2mol/L氢氧化钠溶液.1.计算所需2mol/L氢氧化钠溶液的体积.2.完全中和50mL 0.1mol/L氢氧化钠溶液,需要1mol/L的盐酸多少体积? 用20ml0.2mol/L的NAOH溶液中和0.1mol/L硫酸溶液,需要盐酸溶液的体积是多少? 实验室配置0.1mol/L的NaoH溶液500ml 使用容量瓶前必须进行的一步操作是实验室欲配制0.5moL/L的NaOH溶液500mL,有以下仪器:①烧杯②100mL量筒③1000mL容量瓶④500mL容量瓶⑤玻璃棒⑥托盘天平(带砝码 向100ml,2mol/L的AlCl3溶液中加入1mol/L的NaOH溶液,产生7.8g沉淀,则需要加入NaOH的体积为 等体积的o.1mol/L盐酸,硫酸,用o.1mol/L氢氧化钠溶液中和,当恰好完全反应时,消耗NAOH溶液体积的大小 实验室配置0.1mol/L的NaoH溶液500ml 若试验中出现下列情况如何处理?1:加蒸馏水时不慎超过了刻度2:向容量瓶中转移溶液时不慎有滴液掉在容量瓶外面. 100ml,0.1mol/l的醋酸溶液与50ml,0.2mol/l的氢氧化钠溶液混合,所得溶液呈什么性 若100mL0.1mol/L硫酸铝溶液和氢氧化钠溶液反应得到1.17g沉淀,则需要0.5mol/L的NaOH溶液的体积我知道答案就是不明白为什么分Al离子过量和OH根过量 向27.2gCu和Cu2O的混合物中加入某浓度的稀HNO3(500ml),固体完全溶解后在所得溶液中加入1mol/L的NaOH溶液1L使金属离子恰好完全沉淀,此时溶液呈中性,所得沉淀质量为39.2g.(1)Cu与Cu2O的物质的量之 0.1mol/LAl2(SO4)3的溶液100mL中加入0.5mol/LNaOH溶液得到1.17g沉淀,求加入NaOH溶液的的体积.第一题是上面那个第二题 FE203中如何除FE(OH)3,给出方程式 若100mL0.1mol/L硫酸铝溶液和氢氧化钠溶液反应得到1.17g沉淀,则需要0.5mol/L的NaOH溶液多少毫升?当OH-过量时为什么 Al3+是0.02mol?谁给我讲明白追加20 我Q 10561252 300mL某浓度的NaOH溶液中含有60g 溶质,现于欲配制1mol/LNaOH 溶液,应取原溶液与蒸馏水的体积比约为____ 在0.1mol/L AI2(so4)3的溶液100ml中,欲得到1.17g沉淀,需加入0.5mol/L的NaoH的溶液的体积可能是多少?需要详细的解答过程 在100ml 1mol/L盐酸溶液中加入50ml,1mol/L氢氧化钠溶液后,将反应后溶液加水稀释至500ml,则稀释后溶液的PH值是多少? 300mL某浓度的NaOH溶液中含有60g溶质.现要配制1 mol/L NaOH溶液,应取原溶液与蒸馏水的体积比约为 向0.1mol\L的AL2(SO4)3溶液100mL中加入0.5mol\LNaOH溶液得到1.17沉淀解析:NAOH溶液的体积可能:A.130ML或90ML (1)AI2(SO4)3 0.1mol(2)AI3+ + 3OH- ==AI(OH)3 n(AI3+)==1.17/78 ==0.015mol n(NaOH)==0.015*3 == 0.045mol V(NaOH)==0.045/0.5==0. 0.1mol/l的HCL与0.1mol/lNaOH反应多滴一滴NaOH(0.05ml)将溶液稀释50ml 问溶液PH值 300mL某溶液的NaOH溶液中含有60g溶质.欲配制1mol每毫升的NaoH溶液,应取原溶液与蒸馏水的体积比约为?A、1:4 B、1:5 C、2:1 D 2:3 食品添加剂苯甲酸钠在食品当中的添加的标准是在哪个范围之间? 将一定质量的MgAl合金全部溶解在500mL盐酸中(体积变化不计),取10mL反应后的溶液,用1mol/LNaOH溶液滴定得下图关系.(1)求Mg,Al质量各是多少?(2)求盐酸的物质的量浓度为多少mol/L? 例题:300ml某浓度的NaOH溶液中含有60g溶质.现欲配制1mol/lNaOH溶液,应取原溶液与蒸馏水的体积比 好多副食品中都有食品添加剂,其中以苯甲酸钠最为常见.请问苯甲酸钠对身体有危害吗,如果有又有多大呢? 实验室需要0.1mol/LNaOH溶液450mL和0.5mol/L的硫酸溶液500mL.根据这两种溶液的配制情况回答下列问题.根据这两种溶液的配制情况回答下列问题.用质量分数为98%密度为1.84g/m³的浓硫酸体积为 300mL某浓度的NaOH溶液中含60g溶质,现预配1mol/LNaOH溶液,应取原溶液与蒸馏水的体积比约为:A 1:4 B 1:5C 2:1 D 2:3 苯甲酸钠是什么,对人体有害吗? 向0.1mol\L的AL2(SO4)3溶液100mL中加入0.5mol\LNaOH溶液得到1.17沉淀,加入的NAOH溶液的体积可能是A.130ML或90ML B.100ML或50ML1.17后面是 克 实验室要配置0.5mol/L的NAOH溶液100ML 则1 需要固体NAOH质量 使用食品添加剂的卫生标准是什么? 完全中和0.1mol/LNaOH溶液500ml,需要硫酸的物质的量是多少?若硫酸的物质的量溶度为0.20mol/L,则需要硫酸 实验室需要0.1mol/L氢氧化钠溶液100ml,现有2mol/L氢氧化钠溶液.1.计算所需2mol/L氢氧化钠溶液的体积2.完全中和50ml已配制溶液,需要1mol/L的盐酸多少体积?呵呵 磷酸盐作为食品添加剂有哪些作用还有什么其他的作用 19.将一定质量的Mg.Al合金全部溶解在500ml盐酸中(体积变化不计),取10ml反应后的溶液,用1mol/L的NaOH溶液滴定得下图关系 (1)求Mg.Al质量各是多少?(2)求盐酸的物质的量浓度为多少?就是没图 实验室需要0.1mol/L氢氧化钠溶液100ml实验室需要0.1mol/L氢氧化钠溶液100ml.(1)计算需要氢氧化钠固体的质量(2)完全中和上述氢氧化钠溶液50ml,计算需要0.25mol/L的稀硫酸的体积 求蛋清和磷酸盐作为食品添加剂各有什么作用,具体点, 将5.1克Mg、Al合金投入500mL 2mol/L盐酸中,金属完全溶解后,再加入4mol/LNaOH溶液多少毫升时所得沉淀质量最多? 实验室需要0.1mol/L NaOH溶液100ml,现有2mol/L的NaOH溶液.完全实验室需要0.1mol/L NaOH溶液100ml,现有2mol/L的NaOH溶液. 问题:完全中和50ml已配置的NaOH溶液,需要1mol/L的盐酸体积是多少? 香味剂和甜味剂什么牌子的好?猪颗粒料里面用什么牌子的香味剂和甜味剂好啊? 蒋30mL0.5mol/LNaOH溶液加水稀释到500mL,稀释后溶液中NaOH的物质的量浓度为( )A.0.3mol/L B.0.03mol/L 把0.1mol铝投入100ml 3mol/l的氢氧化钠溶液中,充分反应后,再滴入1.5mol/l的硫酸溶液120ml,其结果中正确的是------A 溶液的PH=7 B 始终保持为澄清溶液 C 得到白色浑浊液体 D 先浑浊,后变澄清溶液但我 甜味剂有那些?家中有糖尿病人,可又比较喜欢甜味食品.我在一家商店里见有一种混合甜味剂.请问:目前有那些甜味剂,各有什么特点\副作用?在那里容易买到? 将30ml 0.5mol/LNaOH溶液加水稀释到500ml,稀释后溶液中NaOH的物质的量浓度是? 现有100ml 3mol/L的NaOH溶液和100ml 1mol/L的AlCl3溶液.1,将NaOH溶液分多次加到AlCl3溶液中;2,将AlCl3溶液分多次加到NaOH溶液中.比较这两种操做结果是A 现象相同,沉淀质量不相等B 现象相同,沉淀质量相 什么是甜味剂 将0.5mol金属钠、镁、铝分别加入100ml1mol/LNAOH溶液中、产生的气体在相同条件下 有100ml 3mol/L的NaOH溶液和100ml 1mol/L的AlCl3溶液.按如下两种方法进行试验:1,将NaOH溶液分多次加到AlCl3溶液中;2,将AlCl3溶液分多次加到NaOH溶液中.比较这两次实验,网上和卷子的答案说法是:现象 甜味剂是什么? 实验室配置500ml 0.1mol/L 的NaOH溶液 需要多少NaOH 固体化学实验题 将0.1mol的镁、铝混合物溶于100mL 3 mol/L NAOH溶液中充分反应,再加入1mol/L硫酸溶液120mlA.溶液显酸性B.溶液澄清C.溶液浑浊D.先生成沉淀,后逐渐溶解 什么是木糖醇和甜味剂 100mL 0.1mol/L 的两溶液中和等物质的量的氢氧化钠关于盐酸和醋酸说法正确的是:100mL 0.1mol/L 的两溶液能中和等物质的量的氢氧化钠 ?这句话对吗?为什么? 配制500ml的NaOH0.1mol/L则要NaOH的质量是多少 有100ml 3mol/L的NaOH溶液和100ml 1mol/L的AlCl3溶液.求生成的沉淀的量1,将NaOH溶液分多次加到AlCl3溶液中;2,将AlCl3溶液分多次加到NaOH溶液中. 100mL 1MOL/l氢氧化钠溶液与100mL 1mol/L的硫酸溶液恰好中和 1mol/L的氢氧化钠溶液怎么配置 在100mL 1mol/L AlCl3溶液中滴加1mol/L的NaOH溶液,得3.9g沉淀,则加入NaOH溶液的体积可能是多少?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn