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

在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 下 调 试 通 过。

盘点英特尔IDF2013第一天:技术产品新趋势 英雄组队去打怪!Nimble Quest开发团队访谈 云通讯平台打造本土Twilio 被逼无奈?传微软或明年秋发布iOS和Android版Office 欧洲各国政府将向大众开放公共数据 访联想云存储罗予晋:优化MooseFS,共建生态系统 磊友创始人赵霏:关于HTML5与Flash争执之我见 国际混乱C语言代码大赛优胜作品详解之“A clock in one line” 揭秘程序员大脑编程的七大“误区” 从Java到ObjC语言的桥梁:谷歌J2ObjC 0.7版本亮相 数据库管理系统ParElastic:打破常规 扩展云端MySQL 谷歌苹果专利纠纷意在战略无意和解 美法官为其苦恼 Facebook收购神秘移动软件创业公司Osmeta 修改驱动,使用Erlang+VoltDB实现每秒87.7万事务 横评美国IaaS“8匹狼”:AWS、GCE、Azure、Rackspace、SoftLayer、Dell、HP、Joyent 独立游戏精神释放的舞台:IGF China 2013作品火热征集中 三款热门入门级在线编程教程对比 微软modern.IE:网站兼容性测试利器 Localytics:AngularJS代替Backbone 代码减少一半 史上增长最快的SaaS服务Optimizely:13亿访客,10万次测试 IDF上的云计算故事 移动周报:百万年薪、微信疑云,老罗小马本周很忙 一个创业失败者的自述:我是如何搞砸一款产品 收入百万美元:一个放弃上大学的程序员 Cocos2D配Box2D:逆天小白程序员作iOS游戏 招聘移动开发,老板必问的10个问题 黑客用智能手机劫持和控制民航飞机 几小时即可使互联网瘫痪的黑客 现已加入谷歌 Tsar开源:淘宝内部大量使用的系统监控工具 五款超实用的开源SVG工具 微信收费事件背后被广泛忽略的技术细节 apache配置问题 asp中调用存储过程,其中传递的一个输入参数为sqlserver 的text型,这个参数该如何写?? 求救高手(关于VC中的cmscomm的问题) 我在网上看数据库课程习题的参考答案,发现许多E/R图下载回来是*.ps文件,请问如何打开? 在win2000系统下,如何让asp文件中显示小数点前的那个零? 为什么有这么一个问题.... 有人愿意收一个一般菜,但又不是很菜的人为徒吗?? 求救VC中的关于串口通信的问题,想请请看,急急急急急急急急急急急 ZDataGrid For VB & VB.Net 如何将界面做成如xp的样子 请教关于游戏平台的问题。。。 今天不是鬼节啊?怎么这么多早就作古的人都出来了? 超级菜的问题(关于WINNT安装)想要分的快进 怎么写dll文件 怎样插入当前时间和日期到Access数据库中 下面为什么出错了? 有人愿意收一个一般菜,但又不是很菜的人为徒吗??? TADOTable如何实现记录定位?——求救! 谁知道怎么让WEBLOGIC中消息驱动BEAN的例子MESSAGE跑起来?.. 請問各位為何javabean在suse linux的調用問題 请问如何在weblogic中设置一个jms topic?. 请教关于游戏平台的问题!! 使用QuickVxD不能生成 .h ,.cpp .mak文件,那里不对? 请问:框架(Frame)为什么不能动态生成两次 ????????????? 在win2k下有人知道ActiveReports报表怎么自定义打印纸张大小 大家讨论一下运算符重载的问题!!!! 位操作问题?欢迎各位朋友讨论! data控件能连接sqlserver数据源么? 有没有办法使重复的值只显示一个,空值不显示也不要占位置?(急呀!!!) 用TURBO C2.0能不能写32位的软件? 如何设置WN98中的硬盘驱动器盘符 SOS pekie 请教啦! 投影仪投出的图像中间部分呈粉红色,是不是投影仪坏了? 在MYSQL中我想修改root密码,可是总报错说user表是read only,如何把只读的属性去掉? 关于开发网络麻将游戏需求的问题。。谢谢。 关于jsp或applet调用本地DLL的问题 在BCB中如何添加自己的类? 关于APPLET从服务器下载图片的问题! 建议下一次改版的时候考虑一下这个问题:CSDN 的很多页面好像用NetScape不能浏览? 我不用IE很多年了, 因为太容易死机 有没有做股票的朋友? 急!!!50分求购一个在程序中实现按下按钮功能的小程序,多谢了 在图象上的汉字显示问题 请问谁知道把AVI文件转换成BMP位图数据的算法 圣诞快乐 用什么工具可以从exe文件中把资源文件,如图像、图标提取出来? Word与Delphi的结合!高手请进! 贴子为什么掉到第二页上再UP就回不到第一页去了?见龟!——千山一刀 ^^^^^^^^^如何配置sybase的clinet端????^^^^^^^^^^^^^^^^^^^^ 进程与线程 在win2000系统下,构建asp+sql的web站点,但在web页中无法显示出小数点前的零? 如何配置sybase的clinet端? 电子表格中多个表格数字除法应该用那个函数比较好不能直接类似5/2 如果把太阳和水星的位置互换一下为什么地球上将会被水淹没 2012年第一季度有几天? 为什么2月只有28天?急 求和2的126次+3的126次的个位数?我今年刚考上高中,对高中的课程一无所知,我都不太会, 2012年第一季度多少天? Excel表格里,除法公式怎么用呀,在一个己经数据的一个表格里,己经发出除法公式,但是现在我要改变数据要怎么计算呢,大家明白我的意思吗,教我最简单的方法吧,最好举人例子吧! 地球在很早以前是什么样子的?地球只有46亿岁 怎么跑出50多亿年前了? 2012年的第一季度是多少天 世界的未来是怎么样的,发挥想象力想一想吧 3046年的地球是什么样子的? 0.5+4/5*0.5+1/2等于多少, 你认为未来的世界是怎么样的呢?3Q 地球原来是什么样子原来是什么样子?现在又是什么样子?将来会怎样? 0.5年等于多久 0.1年等于多久 物理系的请进 有关德布罗意波的问题:由公式E=mc2和E=hc/λ可得λ=h/p,这是对于光来说的……由公式E=mc2.①和E=hc/λ.②可得λ=h/p,这是对于光来说的,物理学家德布罗意将它推广到所有的 大家都来发挥想像力 猜猜这些句子的意思拜托各位了 3Q醉卧听雨锦瑟响 玉笛横波西风凉 陪你醉欢若千年 流水无情氏无名 天涯浪子塔罗女 道是无情却有情 地球是什么样子的 质能公式E=mc2中的c可以换做任意一速度V吗?上式表示的是物体以光速行进时所具有的能量 也是物体的潜在能量 既然速度是光速 那么以任意速度V行进时是否也可以用此公式计算物体以速度V行 【三国演义】里结局是什么?司马懿统一了天下以后呢?3Q 以后地球是什么样子的? 请问这个质能方程能量到底是指什么,为什么根据物质波公式计算出E=mc^2(c指速度)?为什么不等于二分之一mv^2,质能方程不是指质量损失所释放的能量吗?为什么宏观和微观的能量公式不同》? 激发宝宝的想象力对宝宝有什么好处呢?3Q激发宝宝的想象力对宝宝有什么好处呢?宝宝5岁,我发觉宝宝特别聪明,而且很有想象力,听说激发宝宝的想象力可以促进宝宝的求知欲和独立的思考能 一个3位数,左边第一位是7,当把7移动到个位时,所得的新的三位数比原三位数小126.原三位数是多少?用方程解法 什么是质能方程? 5.若4a2-2a-1的算术平方根是3-2a,求实数a的值. 126^10的千位数,百位数,十位数和个位数的和怎麼快速运算啊时间限制10秒之内.能解释最好. 1964年10月16日,我国第一颗原子弹成功爆炸,这一年全年有( )天,到2013年101964年10月16日,我国第一颗原子弹成功爆炸,这一年全年有( )天,到2013年10月16日是 多少周年 第三次世界大战可能发生吗?为什么?要举例子哦. 已知a=-3,B=2,求代数式(1/a+1/b)除以a²+2ab+b²/a+b的值 请问什么是质能方程? 第三次世界大战会爆发吗 先化解代数式(a²-b²分之a²+b²-a+b分之a-b)÷(a-b)(a+b)²分之2ab然后请你去一组a,b的值代入求值.思考:所取a,b的值要满足什么条件? 2013年中30天的月份有( ),31天的月份有( )(2013年是平年.) 真的会爆发第三次世界大战吗?第一次世界大战后20年就第二次了,然后50年后就要发生第三次吗?为什么就不能让我好好过完这辈子,我才18岁... 温哥华是什么国2011年第一季度有几天 质能方程的提出者是? 初一600字左右作文《预言2100年的地球生活》不一定要全文,给些建议,作文思路(开头结尾),但是一定要快, 2011年第一周是哪几天? 比,除法,分数之间的区别(数量间关系) 随着科技水平的提高,人类对地球形状的认识经历了“天圆地方”、“圆球体”、“扁球体”和“不规则扁球体”的漫长过程.人类对地球形状的认识过程.体观的哲理是 A 创新是对既有理论 2011年的第一季度有多少天,这一年共有多少天 分数除法怎么写数量关系快啊、 人类证明地球形状的最科学依据是 还有2011年的第一季度的收益 EXCEL中运算符号都有哪些?乘为*,加为+,减为-,开方是什么呢?开3次方呢?还有别的吗? 根号3乘以9开3次方 再除以6开3次方 先化简在求值(a-b分之a - a²-2ab+b²分之a²)除以(a+b分之a - a²-b²分之下面还有先化简,在求值(a-b分之a - a²-2ab+b²分之a²)除以(a+b分之a - a²-b²分之a²)+1求a=3分 为什么2月是28天?各个月份的天数是怎么规定的啊? 某商品编号是一个三位数,现在五个三位数:126,918,574,320,694,其中每一个数与商品编号恰好都有一个数字在同一数位上.这个商品编号是多少?具体怎么算 0+(-3.71)+(+1.71)+(-5) 为什么2月只有28天?阳历的月份分大月和小月,大月31天,小月30天.可是唯独2月份却只有28天,有的年份又是29天,这是为什么? 某商品编号是一个三位数,现有五个三位数:126,918,574,320,694,其中每一个数与商品编号恰好都有一个数字(补充上面)在同一个数位上.这个商品编号是多少?明天就要 数学达人来回答啊(a+b分之2ab²)³除以(a²-b²分之ab³)乘以{2(a-b)分之1}² 求质能方程的理解我是一名初三的学生,但是我真的对爱因斯坦提出的这个质能方程这个感到好奇,能不用高深的语言帮我解释一下吗, 一个两位数的末尾填上一个零,所得的三位数比原数大126.求原来这个两位数 2012年的第一季度有几天 英语翻译RT要正确的. 地球上有多少水,再过几亿年会把所有陆地淹没吗 2012年第一季度有几天,全年有几天?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn