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

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

VB如何在VB中直接显示无格式256灰度级图像 VB如何在窗体中平铺图片? 三维字的实现 -VB资料 闪动窗口标题 -VB资料 闪烁的标题栏 -VB资料 实现画面的各种切换方法-VB资料 实现屏幕变暗的效果 -VB资料 实现图像切换效果 -VB资料 提取Win9x拷贝的动画-VB资料 一个图像滤光处理程序-VB资料 一个用VB5.0 实现的鼠标绘图程序 用VB6.0制作画图板 用VB6设计有趣的动画场景 用VB编程绘制网格图像 用VB绘制抛物线动画曲线 用VB绘制正弦动画曲线 用VB实现“百叶窗”的图形特效 用VB实现托盘动画图标 用Visual Basic 定制BMP文件 用Visual Basic的Move方法实现动画效果 用Visual Basic与MS-Draw开发通用作图软件 在VB中获取可执行文件及Windows 95快捷方式的图标 在VB中进行各种图形切换的方法 在VB中制作可滚动的图像显示 在图片上平滑移动文字 -VB资料 VB怎样使程序的标题条闪烁? VB制作图像的Mask图 CWinInetConnection-一个封装了WinInet API函数的类 -VB资料 MODEM通讯意外处理-VB资料 MsComm 文字传输-VB资料 PING一个IP地址(向它发送一个数据包并等待回应) -VB资料 java有什么好? 关于Oracle触发器请教: 在弹出的子窗口关闭的同时,父窗口跳转到另一链接如何做,谢谢! TO:enmity(灵感之源) 如何去掉调用Dll在任务栏产生的图标 ORACLE 8的企业版可以糽一台PC上吗? 急救!1000块钱由1分,2分,5分,1角,2角,5角,1元,2元,5元,10元,20元,50元,100元的任意组合,可有多少种组合? 我的电脑有两个内存条(不是一种型号),今天用优化大师优化了一下,结果出现不能启动的现象,请问各位高手如何解决????? 如何在98下设置默认浏览器? to 吴文智 先生 怎样用Adaptive Server Anywhere6.0发布网络版?PB菜鸟求救.... 我的电脑有两个内存条(不是一种型号),今天用优化大师优化了一下,结果出现不能启动的现象,请问各位高手如何解决??? 菜鸟问题,CString 如何转化成整形 !!!在Delphi中不规则窗体的快速显示??? 我的电脑有两个内存条(不是一种型号),今天用优化大师优化了一下,结果出现不能启动的现象,请问各位高手如何解决? 请教大侠!!!!vb调用com组件方法时传递参数类型的问题 updatesql出错: 在java中如何生成可单独安装运行的应用程序呀?就像.exe一样! 请问有没有关于C#的源代码或资料的网站呢? 怎样定位access数据库的路径? 在32代码中调用过16DLL的高手请进! 高分请教!!!!急请大侠帮忙!!!!!!!!!!!!!!! 我的电脑有两个内存条(不是一种型号),今天用优化大师优化了一下,结果出现不能启动的现象,请问各位高手如何解决 -???? 请大家出谋:朋友要离了,怎么安慰她? pfc问题 jin_shan(DOS)请进来看看,谢谢!! 大家平时玩什么网络游戏?请留下ID和擅长的游戏(玉笛书生有偿调查) 请帮一个忙? 怎么样在程序里注册OCX控件件? 奇怪,为什么我的电脑在死机后重起就不能浏览我写的asp页面了 各位,我現在到這一步了,下一步要做什麼 怎样把一个 Frame 窗体放进一个Penal 中??? 我编了4年程序,可是我在这里的提问没有一个人的回答让我满意!!!! 搞张jbuilder6破解? 特殊字符串查找 请问Win2k pro的Inetinfo.exe进程怎么占用CPU达99%呀?怎么解决呢? 自由自在的人,你在吗? 后缀是nlc的电子图书那里找? 请问vc里缺省参数的函数是怎么定义的?(70分) 救救我!!!数据库管理的几个基础问题?? 急需控件 请教一个关于CListCtrl的问题??? c语言实现"智力游戏" --? Redhat下设置环境变量 我的帐号被盗了啦!!!!!!! select max(count(*)) from table group by aa这个意思的语句该怎么样写? 在SQL SERVER7.0中如何实现类似于ORACLE中的CONNECT BY实现的树型查询? 这里都是些菜尿,吗的没有一次我的提问有人给我解决的! 为什么我的问题没人响应???????? 隐藏FORM的API,谁能提供? 谁知道 jdbc-odbc数据库连接是否要装jdbc程序 必需氨基酸是怎么合成的?8种必须氨基酸的合成是在哪些生物体内经行的?合成过程是什么?还有植物合成氨基酸的过程是什么? 组成人体蛋白质的20种氨基酸所对应的密码子共有多少种?我知道是61种但是为什么是61种啊? “必需氨基酸需要量模式”是什么意思? 非必需氨基酸在哪里合成?不好意思,其实我是想问在细胞中的哪里合成 介绍革命影视 作文300-290字 必需氨基酸有哪些?非必需氨基酸有哪些?必需/非必需氨基酸是怎么定义的?最好都列出来。 非必需氨基酸的合成高中教材上说成年人12种非必需氨基酸,是能够通过自身合成的但是是在哪合成的呢?以及怎么合成的?最后能精确到分子水平.O(∩_∩)O谢谢! 我最喜爱的动物作文250字~300字 非必需氨基酸的概念 合成蛋白质的氨基酸全部为必需氨基酸吗 月食的时候、月球向着太阳的一面正好()地球怎么样啊、是背对还是、对着 热爱生命的作文450字急! 我懂得了珍惜友情作文300字 地球上出现月食时,在月球上可看到什么现象?有助于回答者给出准确的答案 关于写花的作文450字.快————明天就检查啦.最好是菊花 观察动物的作文300字 月球进入地球的___区,使得月面变暗的现象叫月食. 日食和月食的时候,太阳,月亮,地球的排列顺序是怎么样的?日食和月食的时候,太阳,月亮,地球?KKKKKKKKK 我需要一篇300字的作文【观察动物的】非常需要. 月食是什么情形,太阳,地球,月球三者如何排列 月球______和地球_______的综合效应是形成日食和月食的成因. 自己观察动物后想要发明的 作文300字 1、发生月食现象时,地球、太阳和月球三者位置排列关系可能是( )如题A、太阳、月球、地球 B、月球、太阳、地球 C、月球、地球、太阳 D、地球、太阳、月球 日食和月食是光沿直线传播最有说服力的自然现象,日食的影子在太阳上,月食的影子在月亮上,日食和月食发生时的光源是( ),发生月食时,地球挡住了太阳;发生日食时,( )挡住了太阳 人体内,在糖类过剩的条件下,糖类是可以转化为氨基酸的你认为下列哪一项不是糖类转化为氨基酸所必需的A体内没有过剩的氨基酸 B必须有过剩的氨基酸 C必须有转氨酶 D必须有糖代谢的中间 人体内必需氨基酸有多少种? 假如我是什么450字作文 可被胰高血糖素转化成糖类的非必需氨基酸能合成蛋白质吗生物书上说胰高血糖素可将脂肪酸,氨基酸等非糖物质转化为糖类,生物老师又说这些氨基酸是非必需氨基酸,那这些非必需氨基酸能 兔子作文290字 假如我是..作文,450字左右假如我是什么..可以是校长、什么的题目最好新颖一点450字左右450字左右 氨基酸转化成糖类在细胞外吗?那氨基酸转化成另一种氨基酸、转化成氨以及氨转化成尿素都只能在细胞内发生吗?为什么?蛋白质水解成氨基酸,抗体与抗原结合能在细胞外发生吗? 一个天真的人作文290字 求的作文.450字以上要一般人想不到的. 糖类怎么转化为氨基酸的 放风筝作文290字左右 作文假如我是爸450字 太阳 地球 月亮的关系 一篇300字关于动物的作文快急用. 世界上为什么会有太阳,地球.和月亮? 月球在太阳和地球之间运行月球的什么会落在地球表面 描写动物的声音,外形的作文300字 人喝醉酒后,为什么会站不稳? 人体内合成蛋白质的第21种氨基酸是什么? 人体中组成蛋白质的氨基酸约20种,这些氨基酸的不同点是A.氨基数目不同B.羧基数目不同C.营养价值不同D.R基不同 我爱我家 作文 300字 蛋白质氨基酸有哪些?必需氨基酸有哪些? 我的收获小学作文参观博物馆 450字 我爱我家的作文 350字 那一次我懂得了友谊 600字 作文我曾经有一个很好的同学 我们并不在同一个学校 但我们约定好了 每个礼拜都互发短信 问候 600字 希望是(原创) 组成人体的20种氨基酸,除八种必需氨基酸外,其它的氨基酸分别是些什么 我爱我家 作文100字左右最好详细写一件事 太阳 地球 月亮 三者是什么关系? 我收获了___(450字作文) 我爱我家作文300来字,急! 我的朋友作文,350个字. 蛋白质是人体细胞组成部分,那氨基酸是不是人体细胞组成部分?(简单明了就行) 半必需氨基酸的概念 四年级作文我的朋友350字以上 简述参与人体蛋白质组成的20种氨基酸的结构特点及分类 必需氨基酸指数的定义是什么?是"必须氨基酸指数"不是"必需氨基酸"
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn