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

在Delphi中建立和使用别名

HTML文档下载 WORD文档下载 PDF文档下载
在Delphi中建立和使用别名

通 常 我 们 在Delphi 外, 通 过 使 用Borland 数 据 库 引 擎(BDE) 的 设 置 单 元(bdecfg.exe) 来 建 立 和 设 置 别 名(Alias), 但 是, 实 际 上 用 户 可 以 在Delphi 或 应 用 程 序 中 用TDatabase Component 或 其 他 方 法 建 立 和 使 用 别 名, 而 不 必 在IDAPI.CFG 中 预 先 定 义。

建 立 有 效 的 别 名 是 非 常 重 要 的, 别 名 详 细 说 明 了 数 据 库 的 定 位 信 息 和 连 接 数 据 库 服 务 器 的 参 数, 当 发 布 应 用 程 序 时 不 必 担 心IDAPI.CFG 中 是 否 有 某 项 设 置。

利 用TDatabase Component 建 立 别 名

建 立 和 设 置 一 个 使 用 标 准 数 据 库 的 别 名 的 步 骤 如 下。 //通过“对象观察器”建立BDE别名

1.建 立 一 个 新 工 程(Project)。

2.将 组 件(Component) TDatabase、TTable、TDataSource、TDBGrid 和TButton 放 在FORM 上。

3.双 击TDatabase Component 或 在TDatabase 快 速 菜 单 上 选 择Database Editor 运 行Database 属 性 编 辑 器。

4.将Database Name 设 置 成‘ZldchAlias’, 这 个 名 字 将 被 当 作 别 名, 用 来 设 置 数 据 集 组 件TTable、TQuery、TStoredProc 等 的DatabaseName 属 性。

5.将Driver Name 设 置 成STANDARD。

6.单 击Defaults 按 钮, 将 PATH= 自 动 加 在 Parameter Overrides 框 中。

7.将PATH= 设 置 成PATH=C: , 单 击OK 按 钮 关 闭 Database Editor。

8.单 击OK 按 钮 关 闭Database Editor。

9.将TTable 的DatabaseName 属 性 设 置 成‘ZldchAlias’。

10.将TDataSource 的DataSet 属 性 设 置 成‘Table1’。

11.将DBGrid 的DataSource 属 性 设 置 成‘DataSource1’。

12.在Tbutton 的OnClick 事 件 过 程 中 加 入 下 列 代 码:

procedure TForm1.Button1Click(Sender:Tobject);

begin

Table1.Tablename=‘customer’;

Table1.Active:=true;

end;

13.运 行 程 序。

上 面3 ~12 步 也 可 以 用 以 下 过 程 实 现:

MyAddStandAlias(AliasN: String;DbLocat: String;DriverN:string ); //使用程序的方法建立BDE别名

//{AliasN 别 名 名

//DbLocat 数 据 库 定 位 目 录

DriverN 联 结 驱 动 类 型}

begin

with Form1.Database1 do

begin

DatabaseName:= AliasN;

DriverName:= ‘STANDARD’;

Params.Clear;

Params.Add(‘PATH=’ +DbLocat);

Params.Add(‘DEFAULT DRIVER=’ +DriverN);

end

end;

procedure TForm1.Button1Click(Sender:Tobject);

begin

MyAddStandAlias(‘ZldchAlias’

‘C: PARADOX’);

Table1.DatabaseName:=‘ZldchAlias’;

DataSource1.DataSet:= Table1;

DBGrid1.DataSource:= DataSource1;

Table1.Tablename=‘customer’;

Table1.Active:=true;

end;

建 立 使 用INTRBASE 数 据 库 的 别 名

建 立 使 用INTRBASE 数 据 库 别 名 的 步 骤 如 下。

1 ~4 步 同 上。

5. 将Driver Name 设 置 为INTRBASE。

6. 单 击Defaults 按 钮, 下 列 内 容 会 自 动 加 在 Parameter Overrides 框 中:

SERVER NAME=IB_SERVER:/PATH/DATABASE.GDB

USER NAME=MYNAME

OPEN MODE=READ/WRITE

SCHEMA CACHE SIZE=8

LANGDRIVER=

SQLQRYMODE=

SQLPASSTHRU MODE=NOT SHARED

SCHEMA CACHE TIME = -1

PASSWORD=

7. 将 以 上 内 容 改 为:

SERVER NAME=C:\Program Files\Borland\Delphi 3\Demos\Data\EMPLOYEE.GDB

USER NAME=SYSDBA

OPEN MODE=READ/WRITE

SCHEMA CACHE SIZE=8

LANGDRIVER=

SQLQRYMODE=

SQLPASSTHRU MODE=NOT SHARED

SCHEMA CACHE TIME = -1

PASSWORD=masterkey

8. 将TDatabase 的 属 性LoginPrompt 设 置 成‘False’, 如 用 户 在Parameter Overrides 框 中 给 出 了 正 确 的PASSWORD, 连 接 数 据 库 时 将 不 会 提 示 要 求 输 入 口 令。 请 注 意: 如 果 在Parameter Overrides 框 中 给 出 的PASSWORD 不 正 确, 而TDatabase 的 属 性LoginPrompt 设 置 为‘False’, 程 序 运 行 时 将 出 错, 但 并 不 会 提 示 要 求 重 新 输 入 正 确 口 令。Intrbase 安 装 后, 系 统 唯 一 授 权 的 用 户 是SYSDBA, 缺 省 口 令 是“masterkey”

所 有 其 他 的 用 户 都 必 须 由SYSDBA 添 加, 所 以 在Intrbase 系 统 安 装 后 要 尽 快 更 改 用 户SYSDBA 的 口 令。

9、10、12 步 同 上 文 的8、9、11 步。

11. 将TDataSource 的DataSet 属 性 设 置 成‘Query1’。

13. 在Tbutton 的OnClick 事 件 过 程 中 加 入 下 列 代 码:

procedure TForm1.Button1Click(Sender:Tobject);

begin

Query1.SQL.Clear;

Query1.SQL.ADD(‘SELECT DISTINCT * FROM CUSTOMER C

SALES S WHERE --- (S.CUST_NO=C.CUST_NO) ORDER BY C.CUST_NO

C.CUSTOMER’);

Query1.Active:=True;

end;

14. 运 行 程 序。

过 程MyAddStandAlias 的 参 数 可 以 通 过 各 种 方 式 赋 值。 目 录、 服 务 器 名、 路 径、 数 据 库 名 和 其 他 别 名 所 需 的 参 数 都 可 以 通 过 输 入 对 话 框 或 从.INI 文 件 读 入 程 序 中。 通 过 以 上 方 法 建 立 的 别 名 只 在 程 序 运 行 时 存 在, 其 他 应 用 程 序 不 能 使 用。

利 用Session 建 立、 修 改、 删 除 别 名

所 有 数 据 库 管 理 应 用 程 序 都 自 动 提 供 一 个 名 为Session 的Session 组 件。 每 个 和 数 据 库 程 序 相 关 的 数 据 集 组 件 都 包 含SessionName 属 性, 它 决 定 了 和 该 组 件 相 关 的Session 组 件。 因 为Session 封 装 了 一 系 列 数 据 库 连 接 特 性, 大 部 分Session 组 件 的 方 法 都 通 过BDE 别 名 工 作。 每 个 和Session 有 关 联 的 数 据 库 组 件 都 有 别 名( 尽 管 在 处 理PARADOX 和DBASE 数 据 库 时, 完 整 的 路 径 可 以 取 代 别 名), 通 过Session 可 以 检 测 和 决 定 别 名 的 可 见 性、 跟 踪 别 名 名 和 其 他 连 接 驱 动 信 息 以 及 建 立、 修 改 和 删 除 别 名。

Session 的 设 置 模 式(ConfigMode) 属 性, 决 定 了 什 么 样 的BDE 别 名 对 它 是 可 见 的。 默 认 设 置 是cmAll, 它 可 解 释 成[cfmVirtual or cfmPersistent]。 如 果 设 置 模 式 值 为cmAll, 由Session 建 立 的 所 有 别 名、 用 户 系 统BDE 设 置 文 件 中 预 定 义 的 别 名 以 及BDE 在 内 存 中 维 护 的 所 有 别 名 均 可 见。

设 置 模 式 的 主 要 目 的 是, 允 许 应 用 程 序 详 细 说 明 和 限 定 别 名 在Session 级 别 上 的 可 见 性。 例 如 把 设 置 模 式 设 置 成[cfmSession], 可 使Session 只 可 见 那 些 由 其 建 立 的 别 名, 所 有 其 他 的 别 名 都 无 效。

当 别 名 在Session 存 在 期 间 建 立 后,BDE 在 内 存 中 建 立 一 个 它 的 拷 贝。 这 个 局 部 拷 贝 只 对 建 立 它 的Session 有 效, 除 非 在 同 一 个 应 用 程 序 中 其 他Session 的 模 式 设 置 成cmAll 或cfmPersistent。

使 用Session 的SaveConfigFile 方 法, 可 以 将 内 存 中 的 别 名 写 入BDE 设 置 文 件 中, 这 样 其 他BDE 允 许 的 应 用 程 序 就 可 以 使 用 该 别 名。

Session 组 件 有 五 个 方 法, 允 许 应 用 程 序 跟 踪BDE 别 名 的 参 数 和 驱 动 程 序 等 信 息:

GetAliasNames: 列 出Session 已 经 处 理 过 的 别 名;

GetAliasParams: 列 出 指 定 的 别 名 的 参 数;

GetAliasDriverName: 返 回 包 含 别 名 使 用 的 驱 动 程 序 名 的 字 符 串;

GetDriverNames: 返 回 所 有 有 效 的BDE 驱 动 程 序;

GetDriverParams: 返 回 指 定 的 驱 动 程 序 的 驱 动 参 数。

Session 可 以 在 其 存 在 期 间 建 立、 修 改 和 删 除 别 名。 方 法AddAlias 为SQL 数 据 库 服 务 器 建 立 一 个 新 的BDE 据 工 作 区。 方 法AddStandardAlias 为PARADOX、DBASE、ASCII 表 建 立 一 个 新 的BDE 标 准 别 名。

AddAlias 需 要 三 个 参 数: 一 个 包 含 别 名 工 作 区 名 的 字 符 串、 一 个 说 明SQL 连 接 驱 动 类 型 的 字 符 串、 一 个 汇 集 连 接 参 数 的 列 表 字 符 串, 其 格 式 为:

procedure AddAlias(const Name

Driver: string; List: TStrings);

AddStandardAlias 需 要 三 个 参 数: 别 名 名、PARADOX 和DBASE 表 存 放 的 完 整 路 径、 当 试 图 打 开 一 个 没 有 扩 展 名 表 时 的 默 认 驱 动 类 型, 其 格 式 为:

procedure AddStandardAlias(const Name

Path

DefaultDriver: string);

当 为Session 添 加 一 个 别 名 时, 它 仅 对 该Session 和 其 他 设 置 模 式 值 为cfmPersistent 的Session 有 效。 为 了 使 新 建 的 别 名 对 所 有 的 应 用 程 序 有 效, 在 建 立 别 名 后 应 该 调 用SaveConfigFile 方 法。

修 改 别 名 可 以 调 用 过 程ModifyAlias, 它 需 要 二 个 参 数: 将 要 修 改 的 别 名 名 和 包 含 修 改 后 连 接 参 数 值 的 列 表 串, 格 式 为:

procedure ModifyAlias(Name: string; List: TStrings);

方 法DeleteAlias 可 以 使 别 名 对Session 无 效, 但 它 不 会 删 除 写 入BDE 设 置 文 件 的 别 名。 如 果 要 将 其 从BDE 设 置 文 件 中 删 除, 需 要 在 调 用DeleteAlias 后 再 调 用SaveConfigFile。DeleteAlias 只 需 一 个 参 数: 别 名 名。 其 格 式 为:

procedure DeleteAlias(const Name: string);

利 用Session 操 作 别 名 具 有 更 大 的 灵 活 性, 将 给 编 程 和 发 布 程 序 尤 其 是C/S 应 用 程 序 带 来 很 大 方 便。 以 上 例 程 在Win95、Delphi 3.0 下 调 试 通 过。

《开源者说》08期:聊聊Java那些事儿 专访唐成:从小工到专家,PostgreSQL的修炼之道 《瞬间之美》作者Robert Hoekman Jr:如何成长为UX领袖人物? TIOBE 2015年6月编程语言排行榜:Swift份额上升,Objective-C成自由落体 【CTO讲堂】Box首位华人核心工程师的回国创业之路 【探秘ES6】系列专栏:ES6简介 专访《Javascript设计模式与开发实践》作者曾探:爱编程 爱生活 【探秘ES6】系列专栏:迭代器和for-of循环 【CTO讲堂】UCloud联合创始人兼CTO莫显峰:如何成长为技术合伙人? 【探秘ES6】系列专栏:生成器 iKair转型传感器及SaaS厂商,发布Maxense平台与9款“云传感器” 免费jQuery幻灯片图片轮播插件Galleriffic的使用方法 专访IBM中国研究院院长沈晓卫博士:全新的物联网来了 《近匠》GYENNO CEO任康:用“勺子”敲开一片新市场 Horde3D——基于C++编写的3D渲染引擎 Maker Faire 2015在深圳正式开幕,关注创客生态系统 Arduino与Seeed Studio达成战略合作——专访Arduino联合创始人Massimo Banzi 免费开源的Bootstrap富文本编辑器bootstrap-wysiwyg使用方法 CCAI2015:首届中国人工智能大会将于7月26-27日在京举行 拥抱互联网+ 用友NC6助力集团企业蜕变数据驱动型公司 《近匠》融云,自主研发真正“不丢消息”的IM云服务 【CTO讲堂】听云CTO Wood:APM实现原理及对IT和产品运营的价值 从7个维度浅析虚拟现实Alpha年 Maker Faire上的微软:将技术与工具带给Maker才是关键 友盟2015年Q1移动互联网报告:车联网App崛起 多面编程语言Scala NEC高可用集群软件EXPRESSCLUSTER X3.3面向中国市场正式发布 【探秘ES6】系列专栏:模版字符串 专访图书作者祁宇:C++11让程序更简洁、更现代、更强大 滴滴打车CTO张博:生死战役,技术和时间赛跑 Qualcomm拥抱创客文化:如何基于DragonBoard 410c创造和创业? submit与frame 焦点移动的问题……(高分求助)!(--已经发过一次了) 微软,我该如何跟随你?(来讨论一下,没分送哦) 关于Request的问题 向高手请教一些专业网址! 网络IP前后不一样 如何查看csdn的精华帖子? [原创]VC#.NET:XML代码注释在智能感应中的使用 怎样在WIN98下不重新启动就可以删除打印处理器文件? 批量复制数据问题,access数据库 在页面中现实数据库的一个字段(大量的文本),用什么最好?? 一些问题,希望大家给点指点! 谁有那种实现股票走势图/趋势图的那种控件 如何控制随意修改个人IP地址 如何叠加两幅大小相等的图片成为一幅图片?其中上面的图片有透明的部分。 请教一个小小的时钟程序 爱情?亲情?友情? COM+问题 请问有关group by,并且insert数据的问题. 如何设置edit中的内容自动折行,能出现垂直滚动条???在线等待!!! 关于在DLL中使用Mscom控件的问题 如何將字符串以十六進制的形式顯示在Edit中 关于SOCK5代理服务器的第二次协商问题? 为什么oracle的sql语句的表名必须加“”??? 谁能解决工具条中的一问题?50分相送 ##### 100分求教:如何实现框架集下页面的定向输出?##### 菜单菜单!!! 如何用Schema验证XML文档 JSP中jsp文件和bean的class文件的相对位置是怎么样啊? excel中的两个问题:1、如何关闭userForm1窗口?2、如何在打开userForm1窗口时使主窗口最小化? Dll函数问题 咋判断用户点的四点能围成一个四边形? 网站中的某一页嵌入VB的AtiveX 控件,客户端能访问网站,但不能打开AtiveX控件。。。高分 请问怎么把 string 型转换成 System.Data.SqlDbType 型? 机器无法启动 主板有问题吗 高分请教 创建不了C#Web项目,急!!!(刚学C#) [求助] 用fopen函数读不出URL文件? 怎么判断listview是否有一个item被选中? 请说一下硬盘容量和内存容量的关系! ▄▅▆▇█ 水园的大背景离不开吵架 █▇▆▅▄ 请教mm有个问题! linux下的编程问题 以Oracle为例说明如何通过ODBC将数据库中的指定表导出到MDB数据库。(原创) 关于一种特殊按钮 SQL语句小问题!!在线等待! 想学ColdFusion 请看我的转载的贴子 Troj_Hacline.A是什么病毒? 关于XML的问题,150分赠送,急 dll问题。很简单。 感慨!!!(潜水一年,吐个泡,顺便发表一点意见) 有人知道猎户座星云里面包含了多少水吗?1998年的时候Martin Harwit发现了在猎户座星云中包含了气态水,如果转化成液态水的话总量大约是多少? 嗯啊称赞的反义词是什么 有哪些现象可以说名地球是圆的? 为什么男人总是背负着沉重的负担? 求描写古代院落的段落要写的唯美,要有秋天的元素,不要含人物的 能通过日常现象看出地球是圆的吗? 光栅折射率的最大变化量怎么算这个知识点是对于均匀正弦分布的光纤光栅而言的,希望有懂这方面的帮我下,感激不尽 段文写T或F 明治维新成功最重要原因是什么 ----------------,百般红紫斗芳菲. 的前半句 30岁未婚男人心理认识了一个30岁的未婚男,是个白羊.觉得不错可是却不知道怎么交往,苦恼.他总是不愠不火的,猜不透他在想什么.我不了解这个年龄的人在想什么(他70后我80后,不过没什么大 明治维新成功最主要原因 折射率怎么求 看看这篇段文怎么做动物的奇特语言(1)人类的信息交流离不开语言.那么,动物有没有“语言”呢?常言说:“人有人言,兽有兽语.”所谓动物的“语言”,一般是指同一种动物之间为了种群的 关于周长和面积和体积的各形状的计算公式以及定理 祤 字的全拼怎么打 麻烦你把这个字的拼音打出来! 这篇阅读段文怎样做? 半圆的周长与面积,公式是什么,原理是什么? 这个字全拼怎打?言字旁,右边是个念字怎打出来的? NBA这个词的全拼 明治维新成功的原因是什么 要40-50字 毅然和心酸 各造1句句子RT 请问这个字念什么啊?——(丼)用全拼打出来的. 完成段文 手机上的壁纸点了后会有反应叫什么我想找手机上的壁纸,动态的,点了后会有反应,比如说气泡点了后爆炸,这种叫什么壁纸,或者谁有 电子商务是什么啊?它现在有定义吗?现在也不知道? ABC干粉灭火器有2、4、8、30、35公斤的 还有多少公斤的? 用撷取造50字句子 否字用全拼怎么打 天体视运动和天体周日视运动的该怎么理解 帮我用这些词造下句子.中学水平,50字内就行这些词:悄无声息'惊天动地'手忙脚乱'舒舒服服'小心翼翼'不可思议'居高临下'前功尽弃.就这些,能写多点就更好,有些用不到的话可以省略, 嫂字全拼怎么打 熊的分类…? 用获益匪浅造一个句子50字 电饭锅功率不一样磁钢是否也不同我有一个1800瓦的电饭锅,还有一个800瓦的电饭锅,它们的磁钢是否能通用,磁钢是否也分功率大小? 公理与公设的区别 1953年人类第一次登上喜马拉雅山脉珠穆拉马峰,请问当时登顶的是" 雾字全拼怎么打 公设公理是一个意思吗? 喜马拉雅山除了珠穆朗马峰,还有哪些高峰? 电饭煲磁钢的接触点根本看不见,怎么能处理触点呢? Bear/小熊 JSQ-A30A2 超声波静音空气加湿器评价高吗 书是甜的怎么写 街字用全拼分开成3个字怎么打 地球可以打穿吗? 在以下现象中,属于平移的是( ) ① 在挡秋千的小朋友; ② 打气筒打气时,活塞的运动;③ 钟摆的摆动; ④ 传送带上,瓶装饮料的移动 A.①② B.①③ C.②③ D.②④ 修字的全拼怎么打 地质勘探能把地球打穿吗 用打气筒给自行车打气,每次对活塞加75N的压力活塞行程为40cm,被压缩气体的内能都增加8.5J,求被压缩气体传递热量为? 电子商务刷.单.有知道的么?我们不仅要学会欣赏,还要学会接受别人的欣赏.任何事物都是两面的,我们切忌“捧杀”!伤仲永的故事不就是不会接受欣赏的恶果吗?现在也有许多神童被埋没的教 打穿地球地球是悬在宇宙中的我们通常去外太空是从地上起飞到外太空,那我们把地球打一个对穿的洞的话会不会可能从这个洞中也能到外太空呢 人有时候还不如一群水欧怎么理解 电饭锅感温磁钢和外壳由弹簧支撑,在按钮未按下时,弹簧是原长还是压缩? 日本的明治维新是在什么样的口号下记进行的? 对于每个人来说,他人永远是水,自身永远是鱼.理解这句话一个生活得丰富圆满的人,是不会没有寂寞的。对于每个人来说,他人永远是水,自身永远 是鱼。即或能在水里自由地游弋,也不能 线段AB上有两点M,N.M平分AB.AM:BM=5:11,AN:BN=5:7,求AB 日本明治维新成功的原因是什么? 读书断想的‘对于每个人来说,他人永远是水,自身永远是鱼’的含义 若点M是线段AB的中点,点N是线段BM的中点,则AN= AB REACH73已正式公布了,以后REACH要测73项了?REACH73测试费用及周期是? 巴基斯坦警方在卡拉奇逮捕97名犯罪嫌北京数十村民阻拦农田被承包种树时遭打绍兴印染温州电镀两个“污染大户”转型斯诺登最新照:在莫斯科乘游览船 未戴调查指斯诺登最可能在俄最流行社交网站长沙飞杭州航班受炸弹威胁备降南昌医生举报副县长公款旅游 开发商10万第九届杭州市十大道德模范(平民英雄)每天倾倒80吨工业垃圾 温州双岙村遭默克尔遭美国监听 德议员称斯诺登愿协杭州发布十大产业高层次人才需求榜爱心的哥往返江山衢州接送尿毒症患者只叙利亚按期销毁化武设施台风“罗莎”进入南海 局部海域将现5长沙机场4个航班受炸弹威胁 其中两个战士吐槽办证难:户口20年没办好 参三位工人井底昏倒 德清民警王天辰冒死联合国称叙利亚完成对化武生产设施功能今起杭州地铁1号线周末末班车延迟至2楼盘装饰柱挡业主家窗户 屋顶外沿成小外交部对“世维会”质疑“10·28”赵素京:举办冬残奥会将使无障碍设施更武汉:4名商贩走私大量“问题牛肉”入婺源警方侦破特大越南新娘诈骗团伙案 俄罗斯通过资本大赦法案 “灰色地带”法心理专家称德翼副驾驶员所为更像恐怖卢森堡正式成为亚投行意向创始成员国阿富汗总统加尼盛赞中国援阿基础设施FIFA专访安切洛蒂:去年最佳一战非新华社:中巴足球小将差距大 中球员球甘肃民俗用品迪拜设“驿站”“针线活儿沪指绕5日线横向漂移 券商股支撑大盘流浪狗被老师收留 获发“学生证”成“美规划武器采购系统重要改革蓝图 保持原标题:荷兰藏家:若肉身佛像属于中国原标题:沙特官员:也门总统哈迪抵达沙印研轻型战斗直升机和“阿琼”MkII西藏行:走进西藏藏医学院(组图)轿车不慎撞树后翻落水沟 3人送医幸无卢森堡正式成为亚投行意向创始成员国吴温基:发挥新媒体优势 带动“一带一新加坡紧张筹备李光耀国葬 国会大厦致
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘