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

自动检测、建立数据库别名和表格-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环境下调试通过。

Git远程操作详解 《近匠》iMAG:移动应用快速跨平台开发工具 Facebook斥资30亿美元购Snapchat遭拒后,推Slingshot 全球开发者报告:程序媛崛起,企业应用更赚钱! 土豪经济 E人E本发布首款4G安全手机 内忧外患:Android版FuelBand应用来得太迟? MongoDB 2.6.2 发布,大大改进查询功能 清华毕军&华为马云:SDN是学术和产业都看好的领域 向三星和苹果发难:亚马逊FirePhone 3D手机强势来袭 支付宝移动端与NFC芯片商、手机商合作 推出近场支付产品 Go 1.3正式发布,改进正则表达式! API设计如龙生九子,Tunneling、Hypermedia等更受开发者青睐 NFV+SDN,博科打造开放式网络平台 亚马逊开放双SDK:摄像购物,追踪脸部玩游戏 解析淘宝Hadoop作业平台——宙斯Zeus 亚马逊的心思:要Android不要谷歌 Vuforia SDK全面更新:3.0版可实时生成虚拟场景和物体 Stream SDK:以手为“剪”,随时随地分享精彩内容 一周消息树:惠普研发基于Linux开源操作系统 打造全新计算机 我从谷歌学到的那些事:Toilet文化、代码实验室 对话大神Scott Shenker:从物理博士到SDN's Uncle 巨头们的又一战:健康数据服务平台 移动应用广告新竞争,Facebook不再一家独大 为什么Fire Phone手机价格不便宜? 老牌播放器暴风影音发力线下与自制内容 APP运营:“小数据”为合理化推送定位 TCL H5TV:回归电视本质,与开发者共赢 烽火星空徐国龙:依托平台,坚持开放与标准,企业移动化快速研发之道 首届bong线上黑客马拉松第一阶段达成! 12支团队晋级 APSys 2014,AMD将发表基于异构体系的DNN实现与评估 PagerDuty实战分析:将MySQL迁移至XtraDB并成功运行EC2 150分:怎样实现类似Delphi中的TClass.Create的功能? 请大家给我这个oracle初学者一些入门指点(偏重Developer 和discoverer方面) 请教! 关于winnt4的救命问题,如何共享上网? 急!!小弟现在用midas做一个三层的系统,用Dcom连接,但是在客户端连接服务器说类字符串未注册 关于选择菜单的这个功能怎么实现 高分求书:用DELPHI搞数据库的书! 关于Potoshop编程的有关问题,知道的请进! 如何改变列表题背景颜色,数据窗口控件用的是动态sql语句。 如何把unsigned long型的对方IP地址,设在ClientSocket的IP中 开发游戏软件一般要用到什么编程工具和编程语言? 为什么 semaphore 和 event variables 是不好的? 在dos下,如何用汇编语句获知XXX盘符是否为网络盘或本地盘或substed盘??? 如何实现字符串种的准确查询! 灰头土脸的问 F7 & F8 区别到底是什么? 我看着都是单步.... 如何在 windows下 破解 写保护卡? VC+ADO,怎么实现把*.DBF表导入SQLServer2k里。 一个关于库文件的问题 我在用VB编数据库SQL SERVER,想实现数据库中关键表在本地磁盘中备份,通过代码应该怎样实现 谁想与我交换主页链接 一个程序编译通过后,我把paradox数据表的某一字段由N型改为了A型,结果运行时出错,应该怎么做呢? 如何用存储过程将一个查询的结果存为本地的一个XML文件? 有人知道.DUL文件是什么东西,有什么用,怎么创建? 如何把richtext.text的内容发到直接激活的word文档中?(在线等待) 高人指点,高人救命,我急。这是我唯一的办法了。 C++中为什么析构函数可以是虚函数,而构造函数不可以是虚函数? 100分求救:谁有webeasymail的解密版本或是能用的注册机??? 寻求C++参考书 高分问一个简单问题,什么叫“RAM驱动器”? 关于运算符重载的问题,请高手进来看看 如何把unsigned long型的对方IP地址,设在ClientSocket的IP中 为什么打开防火墙后,别人不能浏览自己的主页了? 钩子函数 请问如何唤醒机器? 关于ADOQUERY的问题?? 为什么打开防火墙后,别人不能浏览自己的主页了? ■■■征集顶级域名■■■ 谁知道在WIN2000有没有象WIN98中的WINPOPU发送信息的文件,若有,文件名为什么? 云南的程序员考试者看过来!!!一起来交流一下吧!!! 为什么打开防火墙后,别人不能浏览自己的主页了? 请你帮助! 谁知道在WIN2000有没有象WIN98中的WINPOPU发送信息的文件,若有,文件名为什么? 请教pnm和rtsp协议?请问哪儿有相关技术资料下载?谢谢! VC.NET那个变态的属性太难用了!!!我怎么死活都找不到我定义的消息??? 你们遇没遇到在builder中显示 link error提示的?? 请教pnm和rtsp协议?请问哪儿有相关技术资料下载?谢谢! 为什么在form1的paint事件中加入"form1.refresh语句后,在不做任何动作的情况下,事件会连续发生???你们有这种现象吗? 数据表格数据的块粘贴,如何实现? 网络病毒!急救! SOS 救命!!!!!! 同义句转换 Sue looks like Lily.Sue () ( ) Lily. 单项选择:What looks like a cat?My hat _____单项选择:1.--What looks like a cat?-- My hat _____.A.is B.do C.does D.are2.We are all here.Nobody _______ away.A.do B.does C.is D.arw3.--Did you eat ______ in the morning?--No,I didn't eat________.A. 各种重生穿越成动物的,最好字数要多的(各种成猫狗牛羊老虎狮子豹子) 羽绒服放洗衣机甩干真的会爆炸吗?我都用洗衣机洗好几次羽绒服了,也没出什么事啊!可是看新闻说北京一大妈把羽绒服放洗衣机里洗了,甩干的时候爆炸了,那个,有木有童鞋看过洗衣机的说明 椭圆形面积怎么求?回答不许骂我! 是狮子,猫,狗,牛,马五种动物 当名词做定语时 谓语动词用单数还是复数The students each have a desk 为什么不用Has?如果用 wowen teachers呢?woman teacher呢? 猫在盒子里,用英语怎么说? 心理测试,如果把自己比成动物,1狗 2猫 3马 4牛.四种选择代表什么性格 other作定语时后接单数还是复数?比如Don‘t talk to other (student/students)是选..用“the other students”或“any other student”也可以吧?还有,There is no _____ way,这里是填other 某车间有两小组,甲组组乙组的比是5:3,现在甲组调14人到乙组后,甲组与乙组的人数是1:2,两组现各有多少人? 有人问我有四种动物狮子老虎猫和狗成为其中的一个,不知道是什么意思 sport作定语应该用单数还是复数啊 英语翻译这里有只猫在盒子里 There _____ ______ ______in ______ ______. 谁有狗,鸡,鸭,猫,羊,老鼠,狼,狮子,牛,龙,猿这些动物叫声的象形词?还有老虎 模仿朱自清的《背影》中望父买橘写片段 特仑苏牛奶好吗?青少年喝什么牛奶好呢? 一个四面体各棱长都为 根号下2 ,四个顶点在同一球面上,则此球的表面积为(  )为什么能扩展成正方体?角度不一样啊 仿写朱自清的《背影》写一个父亲的背影 特仑苏牛奶有什么问题,儿童能喝吗? 长方形ABCD的面积是120平方厘米,AE是ED的2分之1,AF是AC的4分之3,求三角形BEF 朱自清 背影 望父买橘选文从哪两个方面写父亲的背影?这位父亲给你怎样的印象和感受? —Would you like to have some tea or juice?—_______,coffee is OK.A.EitherB.NeitherC.BothD.None我选A,可答案是B,请问为什么? 六三班同学参加两项课外体育活动80%人参加打乒乓球,75%参加跳绳.有22人两个项目 为什么朱自清着重描写父亲买橘的背影父亲买橘的背影表现了作者什么思想,主要原因是 would you like some coffee or tea?—______.water is ok.A.Both B.Either C.Neither D.All 某班有五十名学生,现在会打兵乓球的有32人,会打乒乓球又会跳绳的有18人,其中每人至少会一样,那么会跳绳的学生有多少名? She think it's fun(变为一般疑问句) 猫属于哪类动物? 跳绳的同学有12人,是打乒乓球的1.5倍,打乒乓球的有多少人? 朱自清 背影 为什么把父亲买橘的事情描写的如此详细 -Would you like some juice and coffee?-( )I like green tea instead.both,either or neither.这里的instead什么意思 歇后语:马尾巴撮绳-----? 谁能给我一篇关于芒果的英语介绍 哪些动物属于猫类? 如图,长方形ABCD的面积是100平方厘米,EB=5分之2AB,BF=8分之5CB,那么长方形FGEB的面积是() 甲乙两个粮仓原来共存粮1100t,他们都运出250t后,甲乙剩下粮食比是7:5,甲乙粮仓原各存粮多少? Lucy looks like Lily.(改为一般疑问句)I'm in Class 2.(对划线部分提问)划线部分是2求大神帮助 猫属于i什么动物 球O1,O2表面积之比S1比S2等于四,则半径R1比S2 Lily and Lucy like oranges..(改为否定句,疑问句,并回答) 什么动物和猫一个类? 《背影》中,为什么车站送行父亲的背影,竟使儿子感动的流泪 把 Lucy and Lily like living in china 改成一般疑问句 she would like some orange juice怎么翻译 可以具体的解释一下椭圆的长半轴和短半轴吗, 化肥厂第一季度生产化肥0.21万吨,比第二季度少25%,这两个季度产量正好是全年总产量的49%,全年总产量是多少万吨? 哪里有语文优美排比句 如图,有一块半椭圆形的钢板,且长半轴长为2r,短半轴长为r,下边EF在半椭圆的短轴上,上边CD的端点在 某化肥厂第一年产量为8万吨,若使该厂在5年内的年产量都比前一年的产量增长20%,求5年内的总产量.(精确到0.1万吨) 847亿等于多少千? 椭圆长半轴=61,短半轴=61|2,求c 某化肥厂第一年的产量为8万吨,若该厂在5年内的年产量都比不上一年增长25%,求第五年的产量及五年内的总产量 已知,如图,在菱形ABCD中,E,F分别是AB和BC上的点,且BE=BF.求证,(1)△ADE≌已知,如图,在菱形ABCD中,E,F分别是AB和BC上的点,且BE=BF. 求证,(1)△ADE≌△CDF (2)∠DEF=∠DFE 英语复数要改变单数名词中的元音字母如何改? The hat looks like a cat. 1万4千等于1. 《背影》一文通过写车站送别,表现了父子什么样的感情? cat,a,looks,this,hat,like连句 已知,如图,在菱形ABCD中,E,F分别是AB和BC上的点,且BE=BF 求证:△ADE全等△CD已知,如图,在菱形ABCD中,E,F分别是AB和BC上的点,且BE=BF 求证:△ADE全等△CDF;⑵∠DEF=∠DFE
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘