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

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

企业社交工具为何走向衰退? 封闭还是开放?雅虎禁止用户使用Facebook、谷歌ID登录和使用其服务 【OSTC讲师专访】罗聪翼:付出和回报在开源世界成正比 近匠:“词Ci”——全栈“女神”如何诠释倾城之美 国内首届引擎黑客松Cocos2d-x Hackathon即将开赛! 抛弃CloudStack,GoDaddy加入OpenStack PaaS平台之争:Cloud Foundry是赢家吗? 投资超140亿美元,涨幅达30%,数据密集型应用将占领第三平台 汽车开放平台:看看通用汽车是怎么做API的 Gamebase将推全新跨平台3D游戏引擎Reach3dx 借助API Telegram能否成为第二个WhatsApp 机器学习也感性:90后软妹纸的编程之路 为安防与视频监控而生 西数紫盘首发 秘闻:鲍尔默离职,或与坚持收购诺基亚有关 【OSTC讲师专访】Thomas Yao:开源社区最缺有能力的领导者 对比MySQL,你究竟在什么时候更需要MongoDB 不以“大小”论英雄,对比IBM、AWS,谁才是Hadoop界的MVP? 参加“我们都用JIRA”视频征集大赛 赢取乐视TV超级电视 开发者下一个待开发市场:印度 一周消息树:80%开发者背井离乡,70%经常加班 移动周报:最受欢迎的跨平台开发工具推荐 研发周报:Mt.Gox破产,都是错误编程惹的祸 数据挖掘+人工智能,教育定制化下的学霸量产 通过700合作伙伴的进一步细分,Google变得越来越像微软 一周热点:高薪必备:Hadoop求职者的6大攻略 谷歌Android主管:两周内为开发者推出可穿戴设备SDK 【OSTC讲师专访】魏子钧: “中国式开源”没有“然后” 揭秘CarPlay欲将颠覆汽车产业的真相 联想王岳源:利用Web App推动互联网转型 IT经理人:提高团队工作效率的11个方法 30美元一小时,数据科学家的收入是否太低? 国内手机及PDA大都用的是哪个操作系统?Palm? 如何是MEMO中增加一行后光标保持在最后位置? vb.net怎样选定word中表格的某一行? ado+intraweb中如何调用coInitialize? 寻找最恶心的笑话 一些对未来的思索、问题,各位来谈谈 有谁知道用哪款打印机比较好呢? 关于类和接口设计问题 如何能把98 聯入2000 如何做一个后台管理-数据库备份程序 如果我用一个Winsock(index)控件数组。Winsock(1)、Winsock(2)同时调用一个延时函数会出什么问题吗? 已知表中字段ID的值,如何定位到这个字段? 谁知道为什么会出这种错误fatal error C1004: unexpected end of file found 小小问题,也有小小的分,不成敬意。 visio ,rose ,ERwin 他们各自的用途是什么,有什么区别呀? Oracle安装的问题——寻求帮忙!!!! 请问Crystal(水晶)报表如何对TextBox进行动态绑定字段? 如何设定mapx图层的颜色 对汇编的渴望! 谁有Asp做的网站?100分奉上! 都进来看看 vc新兵问函数调用菜鸟问题 紧急求救!!!! 谁有delphi关于ado编程 的资料啊(要详细一点的) TreeView的问题,很实在的问题。 关于在PB上实现错误事件处理!!! 关于组件的停靠 用VB.NET连接数据库老是连不了,快精神分裂了,救命啊! 关于SendMessage(高分相送,紧急) 急!!!高手进! 在查找结果中如果某一字段的值相等,只取出其中一条的问题! squid的安装问题???????????????????? SQL语句问题? 冒昧求救,光驱不能使用,不能boot 我的主机总收到外面发的广告信息? 高分求助急!!! 见鬼了,我添加一个TServerSocket控件,然后编译出现:Declaration terminate incorrectly 有谁知道用哪款打印机比较好呢? 按钮BitBtn1上有图片,在图片上写字的问题。(在先给分!) cystal reports 8.5 english显示繁体问题,急,等待 Unix下用什么源代码检测工具比较好? 我的电脑出什么问题了?各位帮帮忙 界面导航如何分类? 怎样得到本机的网卡号??? %¥#问个小问题,知道的都来抢分啊 谁知道哪儿有支持认证的SMTP组件下载? 有什么软件能查看PE文件的? ADO问题!!!! 100分求购最简单的串口程序!需要详细注释! 怎么给大家份呀?to wyz_csdn等(500分诚征wav 转换到MP3的源程序(VC++的例子)) 在directshow中,不知道怎样对播放的画面的亮度进行控制? 纳兰性德《长相思》的诗意?纳兰性德这位诗人写的《长相思》的诗意 东海和银赫的英文名是什么啊 1.把两面镜子面对面平行放置,中间放个小玩具,镜中会出现几个玩具影像?2.背对这家里的大镜子站立,然后拿一块小镜子对着自己的脸,能看到多少个自己面部的影像? 《长相思》纳兰性德诗意要少点,马上抢答 呼吸怎么老是闻到泥土的气味? 7、为了除去KCl固体中少量MgSO4和CaCl2杂质,须进行下列六项操作,正确的次序 是( ) ①加水溶解;②加热为什么是先加入过量BaCl2溶液,再加入过量K2CO3? 测量的等级分化问题高级工等于助理工程师吗?技师等于工程师吗?高级工程师上面还有吗?给我个从低到高的顺序谢谢 为什么湿润的土壤气味更重一些请务必给我准确的回答~ 除去KCl中的CaCl2 加过量K2CO3对么我觉得不对啊 这样不就有杂质K2CO3了么 从考试的角度了判断 对还是错啊 3角函数.答案看不懂.帮忙解释下蓝色画线的. 为什么现在感觉下雨时空气中会有一股带腥味的泥土气息,而以前没有这种气味呢? 谁知道(迈克)用英语怎么打吗?急 有关文言文的题目指出下列各具属于何种文言句式:(1)此三子者,皆布衣之士也( ) (2)士卒多为用者( )(3) 此则岳阳楼之大观也( ) (4) 而城居者未之知也( ) 土壤烧后有刺鼻的气味,说明土壤终有什么? 用英语说迈克感觉怎么样 关于鱼类呼吸时的逆流气体交换求解释...血流方向和水流方向相反,为什么有利于吸收氧气? 两平面镜互成一定角度 若入射光与B平面镜平行,经过两个平面镜反射后,反射光线与平面镜A平行,则两平面镜 灯泡两个接线柱上的线头直接碰在一起 这个函数看不懂#include using namespace std; void GetMemory(char **p) //为什么用*p不行用**p就可以了?{*p = (char *)malloc(100);}void main(void){char *str = NULL;GetMemory(&str); // 《长相思》〈清〉 纳兰性德写的体裁是越快越好!谢谢各位! 电流表示数为0和电流表无示数有什么区别吗? 距离太遥远,怎样才能靠得更近?不同的地方,不同的事业. 这段函数看不懂啊void zh(int a[][3]){int i,j,t;for(i=0;i 长相思 〔清〕纳兰性德 释义 如图,电源电压不变,R1=5,R2=25.若电表甲,乙都是电压表,当开关闭合时,U甲比U乙是多少.若电表甲,乙都是电流表,当开关S断开时,I甲比I乙=多少 c++ 函数看不懂,怎么办指针数组,数组指针.指针函数,函数指针,二级指针很晕啊,理解不能,怎么办函数形参和实参是什么? 清朝纳兰性德写的《长相思》的意思 Helen had to shout ( ) above the sound of the music.A.making herself hear B.to make herself hearC.making herself heard D.to make herself heard 高中函数看不懂到底讲的是什么啊,虽然有些地方能看懂.但还有一多半看不懂的,即使记住了公式和内容什么的,也不理解,特别是三角函数那些,干什么用的? 24.(5分)某化学兴趣小组进行了识别化肥的探究活动.他们对氯化铵、碳酸氢铵、硫酸钾、磷矿粉四种化肥的实验探究步骤如下:(1)步骤一:取上述四种化肥各少量分别放入试管,观察,从外观 怎么判断能发生酯化反应 一个函数式看不懂这个函数式是啥意思?f(k)=∑n*n,(∑的下面写着n=1,上面写着k).以前学过,现在忘了.感激不禁. 鄂教版七年级上册文言文有哪些我要写罚题,语文书没带,请问有谁说下鄂教版七年级上册具体点的文言文. 怎么看能不能发生酯化反应 1.半径为R的圆内接等腰梯形ABCD,它的下底AB是⊙O的半径,上底CD的端点在圆周上,写出这个梯形的周长y和腰长x的函数关系式,并写出它的定义域.2 .有甲乙两种商品,经营销售这两种商品所能获得 中国的科举制创立于哪个朝代 在右图所示的电路中,当开关都闭合后,电压表测的是什么?我想要解法 求一则文言文笑话,及其白话文的翻译 如图,第8题,给出分析过程,80分送上!(第(1)小题不知道做对没有,如有做错,烦请更正,) 王老师用一根48cm的铁丝做一个长方体框架,使长宽高的比是2:1:3.这个长方体的体积和面积各是多少 古文笑话 有翻译 越多越好 提问古文两小儿辩日孔子东游,见两小儿辩斗,问其故.一儿曰:“我以日始出时去近人,而日中时远也.”一儿以日初出远,而日中时近也.一儿曰:“日初出大如车盖,及日中,则如盘盂,此不为远者 古文字义如何查询? 翻译一个小笑话(文言文)短点儿的 研究历史应该从哪个朝代开始关于政治、文化、经济 海贼王中出现过哪些自然系恶魔果实比如说水啊,火啊,风啊,等等最好还要知道是谁 《环珠格格》动力火车《当》这首主题曲中“当山峰没有棱角的时候,当河水不再流”是通过化用什么古典诗词的文字和意境进行创作的? 赤橙黄绿青蓝紫各代表什么意思?详细的问题说明,有助于回答者给出准确的答案 清朝康熙时有没有一个叫纳兰容若的人 关于"海水"的古诗句 两面镜子面对面平行放置,在其中间放一玩具,镜面中会出现多少个玩具影像 1.全诗中没有"望"字但处处写望,距离是自______而______;时间是从_______至________,并由______遥想将_______.2."春望"这一题目的意思是______________________________________.3.诗中哪几联照应了题目中的"春"字?4 从西方经济学供求函数角度解释为什么OPEC要提高油价 把两面镜子面对面平行放置,中间放一个小玩具,会有多少个影子做做这个实验吧. 问几道初中的文言题!谁会?1.杜甫是唐代大诗人,字______,他被称做"______",其诗作被称为"______",都收集在______.2."三吏"是指杜甫写的______,______,______;"三别"是指他写的______,______,______;"三吏""三别" 取一个冷的白瓦片放在蜡烛火焰上方片刻后取出,观察,有黑色小颗粒产生,冷却后触摸有滑腻感,此颗粒是?不好意思, 两个镜子面对面放,中间放一个玩具,镜中会有几个玩具影?要正确答案:把两个镜子面对面放置,中间放一个玩具,镜中会有多少个玩具影像?背对着家里的大镜子站立,然后拿一块小镜子对着自己 纳兰性德 长相思的诗意是什么?wu 相互平行的两平面镜间有一支点着的蜡烛,则我们可以从中看到的像有几个,为什么,谢谢 把两面镜子面对面平行放置,在两面镜子中间放一个小玩具,镜子中会出现几个玩具的影像? 猪木在朝开设事务所 称愿为日朝关系做缅甸传奇双胞胎重聚 八岁即建“上帝军世界银行和联合国报告曝光索马里海盗产斯诺登发公开信谴责美英 吁全球性解决芬兰外交部长期遭入侵 媒体乱猜中俄黑韩国整形“名医” 在京多为游医【图】首度受审 穆尔西大闹法庭韩考场现高智能作弊 超小耳麦直径仅2缅甸传奇双胞胎重聚 八岁即建“上帝军西班牙警方出动便衣查黑工 一华人工厂土耳其与北约和美国在地中海举行军演德国破旧公寓发现纳粹藏品 名画估价1列支敦士登王室珍藏亮相国博朴槿惠:日本就历史问题道歉前不与安倍美国中东政策走到十字路口美国称其只在以巴和谈中发挥推动作用“不稳定之弧”挑战全球反恐肯尼亚法官判轮奸犯割草赎罪 超百万人斯诺登请求美方宽恕 白宫说“不”(图穆尔西受审 拒穿囚服大闹法庭(图)“透明化”监听时代可能会来武汉至重庆\"点对点\"货物班列推出2016国际旅游商品嘉年华在光谷开幕淮南:路遇交通事故将有“基金”相助 “聪明”司机拉超长竹子上高速 车子抛警方破获涉案3000余万元的网络诈骗刷卡手续费调整每年为商户减负74亿元8月汽车类产品消费加速 刚性需求市场马英九大学第一课将开讲 未来每月演讲欧联杯小组赛展开首轮较量 红魔曼联红游医拎手术箱 就上门做“微整形”宿迁小伙“神机妙算” “11选5”中欧联杯小组赛展开首轮较量 红魔曼联红竞彩受注赛事一览205国道铜井收费站9月24日撤站汤山紫清湖景区将建国际马戏城天宫二号总设计师答疑:神舟十一号为何今晚两大中秋晚会对擂 央视首次启用“中超全军覆没,亚冠明年再来残奥会第六个比赛日捷报 江苏又添二金体彩11选5 前一、前二可以这样玩最古老乐团为南京森林音乐会做开场秀
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘