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

自动检测、建立数据库别名和表格-Delphi资料

HTML文档下载 WORD文档下载 PDF文档下载
自动检测、建立数据库别名和表格-Delphi资料

一、数据库别名(Alias)的定义和检测方法

当Type为STANDARD时

别名定义最为简单,这时仅能采用PARADOX

DBASE

ASCIIDRV三种数据库作为缺省

的驱动程序(DEFAULT DRIVER)。

另外,还要定义数据库存放路径(PATH)和ENABLE BCD,才能建立一个完整的数据库别名。

Delphi的数据库应用程序能自动提供一个Session组件,这个Session组件即为应用程序与BDE的接口。

1. 检测别名

通过调用Session.GetAliasNames(list:Tstrings)方法,可将当前BDE配置中的所有数据库别名的名称存

放到List字符串列表中。list.IndexOf('需要检测的别名')的值会告诉我们这个别名是否存在(其值为-1时

不存在)。

2. 增加一个新的别名

Session组件的过程AddStandardAlias(const Name

Path

DefaultDriver: string)

可以增加一个标

准类型的数据库别名。例如增加一个名为Cntssamp,缺省数据库驱动程序为PARADOX、存放路径为

c:\delphp11的别名: Session.AddStandardAlias('Cntssamp'

'c:\delphp11'

'Paradox');

3. BDE配置文件存盘

Session.SaveConfigFile;

二、数据库中表格的定义和检测方法

数据库中表格的定义、维护和使用,只有在数据库别名正确设置的情况下才有意义。以TTable组件为例,必

须设置其DatabaseName为一个实际存在的别名。

1. 检测表格是否存在

通过调用Session.GetTableNames(const DatabaseName

Pattern: string;

Extensions

SystemTables: Boolean; List: TStrings)方法,可将当前指定数据库别名中所有表格的名

称存放到List字符串列表中。list.IndexOf('需要检测的表格名')的值会告诉我们这个表格是否存在(其值

为-1时不存在)。

2. 建 立 一 个 表 格

第一步,设置TTable组件的DataBase Name(别名)、TableName(表格名)、TableType(数据库类型);

第二步,调用Table.FieldDefs.Add(const Name: string; DataType: TFieldType; Size: Word;

Required: Boolean)增加表格的各个字段,其中Name为字段名,DataType为字段类型(常用的有

ftInteger

ftString

ftDate

ftBoolean等)

Size为字段长度,Required为该字段是否允许有空值。

第三步,调用Table.IndexDefs.Add(const Name

Fields: string; Options: TIndexOptions)方法增

加表格的索引文件,其中Name为索引文件名,Fields为索引字段,options为索引参数的集合,常用的索引

参数有ixPrimary(主键)、ixDescending(降序)、ixUnique(具有唯一值)等。

第四步,调用Table.CreateTable建立表格。

三、一个实例

在Form1.Formcreate事件中写入如下代码,程序启动时,将自动检测是否存在数据库别名Cntssamp,如果

没有则建立之;自动检测别名Cntssamp中是否存在表格TSK(图书库),如果没有则自动建立表格TSK。

procedure TForm1.FormCreate(Sender: TObject);

var

ap:TStringList; {字符串列表变量}

answer:Integer;

begin

ap:=TStringlist.Create;

Session.GetAliasNames(ap); {取得别名列表}

if (ap.IndexOf('Cntssamp')=-1) then {判断别名是否存在}

begin

answer:=Application.MessageBox(

'别名Cntssamp不存在,

现在创建吗?'

'BDE信息窗口'

mb_OKCancel);

{增加一个名为Cngzsamp的数据库别名}

if answer=IDCANCEL then begin

ap.Free;

Exit;

end;

Session.AddStandardAlias

('Cntssamp'

'c:\delphp11'

'Paradox');

Session.SaveConfigFile; {BDE配置文件存盘}

end ;

ap.Clear; {取得别名Cngzsamp中的所有表格名称列表}

Session.GetTableNames

('Cntssamp'

''

False

False

ap);

if (ap.IndexOf('TSK')=

-1) then {判断表格是否存在}

begin

answer:=Application.MessageBox(

'别名Cntssamp中不存在

表格TSK

现在创建吗?'

'表格信息窗口

'

mb_OKCancel);

if answer=IDCANCEL then begin

ap.Free;

Exit;

end;

with table1 do begin

Active:=false;

DatabaseName:='Cntssamp'; {数据库别名}

TableName:='TSK'; {表格名}

TableType:=ttParadox; {数据库类型}

with FieldDefs do begin {增加字段}

Clear;

Add('SH'

ftString

30

False); {书号 String(30)}

Add('SM'

ftString

30

False); {书名 String(30)}

Add('CBS'

ftString

20

False); {出版社 String(20)}

Add('CBRQ'

ftDate

0

False); {出版日期 Date}

Add('YS'

ftInteger

0

False); {页数 Integer}

end;

with IndexDefs do begin {增加索引}

Clear; {按书号字段建立主索引}

Add('SHSY'

'SH'

[ixPrimary

ixUnique]);

end;

CreateTable; {创建表格}

end;

end ;

ap.free; {释放变量ap}

end;

四、本程序在Pwin95

Delphi3环境下调试通过。

CTO如何避免决策失控(三):从CEO角度看CTO的应对能力 IT界需求最旺的16项技能 PMC发布8系列RAID卡 找准国内互联网企业需求 早Google一步,eBay数据中心率先搭载了火星上使用的技术 目标专利2000,技术研发人员占55%,斐讯的厚积薄发 SwiftStack CEO:分布式存储的未来 触控陈昊芝:“好声音”标王对移动游戏未来的预测 Office将更强大:微软正开发Office Reader和Office Lens 百度技术专家详解Clouda 并称计划推出相应UI解决方案 少年才俊:看IT界8个不到20岁的科技公司创始人 Oracle与Freescale展开深度合作,Java或将一统物联网? 探秘Google新搜索引擎算法Hummingbird的16个疑惑 如何在开发项目里进行自我激励! 或许很受用:苹果、谷歌和亚马逊等公司的14个怪异面试题 12款不容错过的新款jQuery插件 技术开发者如何看实时Web App开发框架? 高薪技术排行:大数据居首,苹果相关次之,Java、C等相去甚远 谷歌开发网络跟踪新技术:AdID将取代第三方Cookie 穿在脚上的苹果?苹果聘用Nike设计主管Ben Shaffer 七款Debug工具推荐:iOS开发必备的调试利器 六年亲历,见证中国大数据技术与应用时代的到来 Mailbox:日支撑过亿信息数据库的性能调优及集群迁移 PayPal前CTO 在美国改变世界的乌克兰犹太人 放弃Bootstrap&Foundation,迎接Semantic UI? 一键分享:iOS版Google+发布SDK InMobi杨娟:中国移动游戏如何挑战全球? Adobe再遭APT攻击:数十G源代码及290万用户信息失窃 程序员,如何在工作中崭露头角? 国内外三个不同领域巨头分享的Redis实战经验及使用场景 这是一场潜在的战争:谷歌与Facebook、苹果在搜索上的博弈 设计新闻类网站需要注意的关键点:移动友好、宽带…… sql server7.0 在局域网中进行出版订阅是否和权限有关 一个关于任务栏的,一个关于IUnknown的? 有什么方法在TStringGrid中画一幅画,而不是在某个单元中画? outlook邮件求助 不同窗体之间如何传递变量??? 我用Internet Transfer Control 做ftp程序时遇到的问题! 我就这么点分了!谁帮我解释一下滤镜呀!那个用来处理图象的!在JAVBASCRIPT! 路由到底是什么东东,我怎么不明白怎么回事? 如何在属性页中加入静态切分视图??? 我是天津人有没有同乡? ------------------------smiled 快来 我要饿死了----------------------- 我想用DCOM实现访问数据库,请大家指点,请进 竹子, 还给我一点分吧? TO:Vincent_Jiang(无生无灭) 两机相连的问题??? 提问题给的最高分于其余的分有何关系?请问斑竹 什么叫数据库的别名,应该怎样设置数据库的别名? 怎样与telnet应用服务程序通信 怎样在TStringGrid的整个框内绘图,而不是在某个单元中绘图? WEB安全认证问题 TO: neweb(永不言败) 请问各位大虾,哪里有jdk1.3 for linux SPARC 版本 求救!硬盘坏了! 晨昏三灌水,早晚一个屁 怎么在EXCEL中用VBA控制图表的位置? Delphi确实很好,学了好几年了,但在上海差点没有找到工作,很少有招学Delphi的 关于 VC 6.0 有没有什么补丁,升级文件之类的东西? 高分争解 怎么利用Jsp发邮件? 有谁知道光驱加锁的问题 parodox数据库问题 各位平时用 VC 作东西,都用那些辅助工具?  高分争解 【 http://www.esoftware.com.cn/search.php?condition=%BA%AB%C1%F7%C0%B4%CF%AE&page=1&mode=3 】 JBuilder的使用问题 在VFP中,编程执行SQL语句时,怎样使系统的查询结果不出现? 一个程序流程的问题 为什么当我的SpeedButton的enabled为false时,上面的图标就没有了? 囡囡(baicolt)请进,问你一点事情 简单问题,请赐教 高分相赠!!!:操作系统和SQL SEVER2000都是英文版,用VB连接如何可以正确的输入和显示中文? 则么在程序中得到sql的存储过程的返回值? 请问 VB 6.0 有没有最新的升级文件之类的东西?高分争解 谢谢 谁有用java做的复杂一点的图行界面的例子 网管来看看,为什么不能给分了!右边的文本框又不见了! 各位用 VB 编程都用那些辅助工具? 高分争解 关于ShellExecute 装了redhat7,在/etc里没有inetd.conf文件,谁见过这咋整 菜鸟请教大侠!很急!谢谢!!只有10分对不起! 请问一个关于CLASSWIZARD 的问题 这里有PB反编译程序,你信吗? 怎样解 关于大数据量的问题,经验丰富者里面谈! 能证明在化学变化中分子可在分的是 生活中,过滤水或纯水怎么弄到?不能直接用自来水 请问为什么电解食盐水时石墨电极会剥落 能证明分子在化学变化中可以再分的事实是A.水结成冰B.水电解生产氢气和氧气C.水分蒸发D.水汽化 过滤后的水是否一定是纯水? 用石墨电极电解500ml饱和食盐水,在阴极得到的气体在标准状况下体积转为56ml假设溶液体积保持不变,求电解后溶液的ph 怎么证明二氧化碳通入水后发生了化学反应 过滤得到的水为什么不是纯水 现有500mL饱和食盐水,其中含有少量NaOH,该溶液的pH为10,用石墨电极电解时,当阴极产生5.6L H2(标准状况)时停止电解,此时溶液的pH约为: 和 设计两种不同实验,证明二氧化碳通如水时,的确发生了化学变化 杀菌过滤后的水虽然澄清透明,但不是纯水如何证明他不是纯水,写出实验的步骤、现象和结论.(字数不要太多啊) 3V,石墨电极电解食盐水一段时间后溶液变黄,为什么? 验证二氧化碳与水反应,可将二氧化碳通入石蕊溶液中, 目前市场上买的净水器真有净化水的功能吗?如果安装净水器对身体有益处,什么牌子的质量过关? 由氢氧化钠(NaOH)和过氧化钠(Na2O2)组成混合物,并检测出氢元素的质量分数为1%(出5个类似的计算题)谢谢悬赏20拜托了今晚求答复 下列能证明分子在化学变化中可以再分的事实是(选项在问题补充中)A.工业上分离液态空气制取氧气B.固态碘受热形成紫红色的烟C.蔗糖放进水里不见了D.氧化汞受热分解生成汞和氧气 纯水的标准是什么是?超纯净水的标准是什么? 帮忙出550道计算题和165道应用题 能令人信服地证明分子在化学变化中可以再分的是A.水在通电的情况下电解生成氢气和氧气 B.衣柜里的卫生球逐渐变小C.液态水沸腾变成气态水 D.固态碘受热行程碘蒸气 纯水和净水的区别 化学Na2O2+CO21.这是放热还是吸热?2.怎么判断Na2O2和CO2中的氧在反应后变成了哪个物质中的氧啊?我的意思是,2Na2CO3中有6个氧,O2中有两个,那应该怎么判断2Na2O2中的那4个氧和2CO2中的那4个氧分 怎样证明二氧化碳和水经光照在叶绿体内产生淀粉是一个化学变化由二氧化碳和水在光照条件下,在绿色植物的叶绿体内发生光合作用,产物是淀粉,你怎样设计实验证明这是一个化学变化? 纯净水是纯水吗? 【化学】Na2O2为什么是共价化合物?我查的到Na2O2的电子式如下:....Na+ [ :O:O:]2- Na+....过氧根显-2价,2个Na原子的电子转移到过氧根上,正好形成稳定结构.可它为什么是共用电子对的共价化合物?Na 怎样证明经光照在叶绿体内产生淀粉是一个化学变化由二氧化碳和水在光照条件下,在绿色植物的叶绿体内发生光合作用,产物是淀粉,你怎样设计实验证明这是一个化学变化? 我想问一下,纯净水和净化水有什么区别? Na2O2可以与哪些物质反应? 请设计实验,证明“二氧化碳被绿色植物吸收并用于制造淀粉”. 以食盐和水为反应物,经过电解制得Cl2 H2 NaO2三种物质,求该反应的化学方程式 将等物质量的 Na2CO3 ,Na2O2 ,Na2O ,NaOH ,NaHCO3 ,NaCO3-8H2O 放置于空气中将等物质量的 Na2CO3 、Na2O2 、Na2O 、NaOH 、NaHCO3 、NaCO3-8H2O 放置于空气中 ,其质量由小到大的顺序是: 验证绿色植物在光下制造淀粉时,实验前将植物进行黑暗处理,目的是?A;降低叶片温度B;消耗叶肉细胞内的淀粉C;使根的吸收作用停止D;避免植物进行蒸腾作用 食盐水微酸性电解制得氯酸钠化学反应方程式是什么? 将Na2O NaOH Na2O2微粒数目相等的上述固体物质长期放制在空气当中,最后质量增加的大小顺序是 证明自来水不是纯水 水通电生成氢气和氧气属于化学变化,由该实验可以证明水由氢元素和氧元素组成.该实验给你什么启发? 电解氯化钠的化学反应方程式 纯净水和自来水的区别是什么? 水通电分解成氢气和氧气 是将什么能转化成化学能? 用铜电极电解食盐水的先后现象及相关化学方程式.谢谢! 自来水和纯净水的区别有哪些?在生活中,自来水是否可以用来食用? 水在通电的条件下分解成氢气和氧气,说明分子具有什么性质? 电解氯化钠和电解熔融氯化钠化学方程式、用途.最好有附带离子方程式. 喝纯水和自来水的区别是? 水在通电的情况下分解为氢气和氧气,说明什么? 1.电解NaCl固体熔融物化学方程式---------2.电解饱和食盐水---------3.NaOH溶液与CO2 CO2少量------------ CO2足量---------- 请问山泉水和纯净水的区别? 用物理和化学办法证明大气中有水 电解熔融氯化钠和电解饱和食盐水为什么它们的化学方程式 不一样呢?不都是氯化钠嘛? 到底喝是纯净水好,还是自来水好,还是经过过滤处理的自来水好! 什么办法能证明空气中有水 电解熔融氯化钠时为什么写化学方程式,能不能写离子方程式例如2NaCl=(通电)2Na+Cl2能不能写成2Na+ +2Cl-=(通电)2Na+Cl2 哪位妈妈可以告诉我婴儿喝自来水好还是纯净水好 如何证明空气中含水和二氧化碳 电解熔融氯化钠制得金属钠的化学式 宝宝喝自来水好还是纯净水好? 怎么证明空气中含水蒸汽 食盐水的化学式? 能证明分子在化学变化中可分的是:A.氧化汞加热有汞生成B.水加热变成水蒸气C.分离液态空气可得到氧气D.将CO2气体压缩可制成干冰E.碘受热变为碘的蒸汽F.电解水生成氢气和氧气G.铁粉和硫 什么实验可以证明大气中含水 请问,电解食盐水,怎样防止石墨电极脱落?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn