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

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

Android中电话和短信服务的包分析 一位Android开发者的赚钱经历 让网页中的图片随屏幕滚动,并避免与文字重叠 Hello bat - DOS BAT批处理编程入门教程(一) 变量 - DOS BAT批处理编程入门教程(二) Android编程获取网络连接状态(3G/Wifi)及调用网络配置界面 程序流程控制基础 - DOS BAT批处理编程入门教程(四) For循环语句详解 - DOS BAT批处理编程入门教程(五) Android编程之实现GPS定位 android编程实现仿iphone的tab效果 系统变量 - DOS BAT批处理编程入门教程(三) Android编程获取手机的IMEI Android开发中14个很有用的编程技巧 Android蓝牙栈bluez使用方法 Android模拟GPS数据生成kml和nmea文件 Android签名用keytool和jarsigner制作apk文件 谈谈Android中文短信的实现 Android中文短信开发技巧 Android来电号码获取代码 Android AIDL初学者必看内容 Android与XML解析 Android天气预报程序开发实例与定位信息 Android中文短信开发终结篇 Android权限列表permission说明 Android输入法开发实例解析 Android示例程序Snake贪食蛇源代码分析 Android平台View的按键事件KeyDown用法 Android加速感应器实现屏幕自动旋转-Sensor属性 Android视频播放类VideoView解析 Javascript如何检测浏览器关闭了小叉叉 文件操作 - DOS BAT批处理编程入门教程(六) weblogic+ejb高手请出来赐教 000000000000020.0000000000000000分提问:以前的加密文件现在如何查看? 怎样销毁CFormView 对象? (在线等待) PB如何调用带参数,及返回值的SQLserver存储过程? #####如何捕获在窗体外,鼠标右键或左键CLICK时的鼠标的坐标点##### dll的问题 在VB的菜单中,如何加载图标? 安装问题! 关于高程,菜鸟请各位大虾帮忙!!!! 给datarow负值,在winform可以,在webform失败? 在线统计,在国内有哪些大企业应用了客户关系管理系统(CRM)??? MessageBox不能显示 简单问题,写文字时旋转90度(立即给分) 求救,我好迷惘! 怎么得到当前系统中安装的所有程序(软件)的列表? 什么叫做域(急用) select int (*fp)(int a,int b) 和 int *fp(int a,int b)有何区别 ADO中的_RecordsetPtr的查询问题 我是学VB了,但我不知道IIS是什么意思是否能给示解答,细细说明,增分 为什么我的xp经常一开机不久就发出警报声音 求救,我好迷惘! 请网友们注意接分 郁闷!太郁闷了!大家都来看看,散分 仓库物料存仓量统计问题,SQL语句怎样写,进仓、出仓在不同的表呀! 菜鸟请教高手:这样的代码能写吗 求救,我好迷惘! 怎样使热点(光标)跳到某个对像?? 内空,请sharetop进来领分 仓库物料存仓量统计问题,SQL语句怎样写,进仓、出仓在不同的表呀! 请问oracle和sql server两者最大区别是什么? 请问哪里有<vc60宝典>的电子书下载?不够分再加 用RDS技术要什么样的系统设定?? 如何判断image里有没有图片? 请问高手,能不能给edit的一定部分加阴影。 如果数据达到百万条,如何来优化检索速度???希望高手进来探讨!!! 请问大侠!一个网卡可以和两个ip绑定吗? 大家帮我找原因 开机时候如何进入dos状态? 前辈误会啦!我只是写了可把查询结果用表格显示的程序, 打印还是没有思路!!! 急哭... 重庆考程序员的兄弟们近来看看吧! 调度算法问题! 求救!!win2000的删除与添加程序打不开了? 怎样在程序中把影像文件做成rm格式? 让别人通过IE访问我的JAVA程序该如何做! 青蛙的特征 [zz] 暴走银狼的程序作不出想要的不规则窗体 ——————大侠们快来看网络专业程序呀—————— pb8连oracle9i时出现ORA-12514, 监听进程不能解析在连接描述符中的service_name 要求当鼠标离开Groupbox的范围时相应某一事件,我该怎么作呢 上海、北京和深圳,何去何从? 与母亲有关的谚语和俗语.谚语和俗语 求证:三角形ABC中,BC边上的中线AM^2=1/2(AB^2=AC^2)-BM^2 请问现在市面上的果蔬农药降解机 能否降解禽肉内的激素成分~ 家里哪些东西可以作为润滑剂 如图,已知△ABC中,∠B=∠ACB,M是AB上一点,N是AC延长线上一点,且MB=NC,连接MN交BC于P,求证MP=PN快点啊、晚上我来看 插入图片 肉中的激素加热会不会分解 家里没有润滑剂,用什么代替润滑剂最安全 建筑工地上有一堆水泥,用了8分之3后又运来36吨,这此时这堆水泥比原来还多6分之1.原来这堆水泥有多少吨?给莪个正确答案.随便分析下.- - 我做梦梦见一条青蛇,我做梦梦见我躺在床上身边盘着一条青蛇,我特害怕一直躲,结果不小心碰到它,它就转头要咬我.我就给吓醒了.这个梦是好还是坏?请根据我的梦,具体的解释下, 在平行四边形ABCD中,E为BC的中点,连接AE并延长交DC的延长线与点F.当BC与AF满足什么数量关系时,四边形ABFC是矩形?请说明理由. H202(双氧水)是电解质吗?如果是请写出它的电离反应方程式! 如图,点P,M,M分别在△ABC的各边上,且MP垂直于AB,MN⊥于BC,PN垂直于AC 求证1.PMN是等边三角形如图,点P,M,M分别在△ABC的各边上,且MP垂直于AB,MN⊥于BC,PN垂直于AC 求证1.PMN是等边三角形2.若AB=9,求MC 如图(2)所示,M、N是△ABC内任意两点,试探求AB+AC与BM+MN+NC的大小关系,并写出探究过程. 【化学】过氧化氢是不是电解质?为什么?它能电离出H+ 和 H02-为什么不导电?谁做过实验?如何验证? 建筑工地运一批水泥,原计划每天运来5.5吨,18天可以运完,实际每天比计划多运1.1吨,实际可以提前几天完成? 怎样用SolidWorks 画两端带挂钩的拉力弹簧怎样用SolidWorks 画两端带挂钩的拉伸弹簧 氧化铝是离子化合物,为什么是原子晶体? 如图1,已知三角形ABC中,角ABC=90°,点M为BC上一点,点E,N在AC上,且EB=EM.MN=NC(2)求证:EN=1/2AC;(3)如图2,过B作BG平行MN交EM于G,当BM/CM=1/2.求BG/MN的值 自然现象的作文300—400字五年级,好的加50分!!!急急急急!!!!今天,过了不要!!! 过氧化氢(H2O2)的俗称双氧水,在医疗上可作为消毒杀菌剂.关于双氧水的说法正确的是( A.双氧水是由两个氢原子和两个氧原子构成B.一个双氧水分子是由一个氢分子和一个氧分子构成C.双氧水是 一批水果,上午卖出总数的1/4,下午运走14吨,还剩总数的2/5没有运.这批水果有多少吨?(不用方程) 快. 关于自然现象的作文可以是朝霞晚霞,月圆月缺,春风春雨,雾起雾散等 以△ABC的边AB、AC为边,向三角形外做正方形ABDE及ACFG,连接CE、BG相交于点O,P是线段DE上的任意一点.求若一个四边形中存在相邻两边的平方和等于一条对角线的平方,则这个四边形是勾股四边形. 能否有健康的身体,关键在于平时多锻炼.修改病句在原句上修改 有关自然现象的作文350字以上 用什么打飞机 描写人物打扮的词急 写自然现象的作文500字左右要写风、雨、霞的,不要四季的,只要一天的 “打飞机”是什么意思? 描写高尚品德的人的诗句 矿井主要自然灾害有哪些?其中瓦斯、煤尘灾害对矿井有哪些危害? 请问这样的图是拿什么画出来的 直角三角形ABC,AC为斜边,AM=MN=NC,BM=3,BN=4,求MN 从能量的角度解释 流行进入大气层时为什么会燃烧? 打飞机是什么意思 井下瓦斯和煤尘爆炸时,矿工如何自救? 矿井主要灾害有哪些?其中瓦斯、煤尘灾害对矿井有哪些危害? 像这样的图是用什么画出来的,怎么画? 水平桌面上有两个长方体木块A、B,F为水平推力,向右作用于左边的木块上,(A、B连在一起),则( )A、B向右匀速运动时,A、B之间一定有弹力老师答案是这样给的,但是向右匀速运动和静止情况 图形的旋转方法是什么 什么是打手枪,打飞机? 里面的解释我看不懂 整体法 T=Mag+Mbg这个我看得懂 其他就不懂了 什么东西可以当润滑剂 三氧化二铝是什么晶体?离子晶体还是分子晶体 是由六个全等的正三角形围成的图形 图中有几个等腰梯形 简述理由快理由写好点 已知BE、CF是三角形ABC的高,在BC上截取BP=AC.在CF的延长线上取点Q .使CQ=AB.求证1.AP=AQ 2.AP垂直于AQ 初二物理声现象的简答题.电影《泰坦尼克号》描述的是一艘叫“泰坦尼克”号的大海轮,因为跟冰山相撞而沉没的悲剧.为了避免悲剧重演,科学家发明了一种利用声音传播规律制成的探测装置 把图中的等边三角形分成两个三个四个全等图形. 已知BE、CF是三角形ABC的高,在BE上截取BP=AC,在CF的延长线上截取CQ=AB那么PA与AQ垂直吗? 在三角形ABC中,若AB=5,BC=6,BC边上的中线AM=4,求AC的长 单位上要搞个消防应急演练,需要制造小火灾然后用灭火器熄灭,请问怎么制造这个火灾?需要什么油?需要准备什么东西·~急·~ 如图,锐角三角形ABC中,BE,CF是AC,AB上的高,在BE上截取BP=AC,延长CF,使CQ=AB,求证:AP=AQ,AP⊥AQ 市场运来一车水果重1.8吨,按2:3:5的比例分配给甲、乙、丙三个水果店,乙水果店分得这批水果的几分之几题续:是多少千克? 消防部门对地面办公室灭火器数量有什么规定 如图为两个全等的三角形,则∠C的对应角为_____. 如图,在三角形abc中,ab大于ac,am是bc边的中线.求证am大于2分之一(ab-ac) 今年父亲年龄是儿子年龄的10倍,6年后父亲年龄是儿子年龄的4倍,则今年父亲、儿子的年龄分别是多少? 与母亲有关的俗语有哪些? AM是三角形ABC的BC边上的中线,求证AB的平方+AC的平方=2(AM的平方+BM的平方)关于勾股定理 儿子今年6岁,父亲今年36岁,几年后父亲的年龄是儿子的4倍?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘