知识大全 检测、建立数据库别名和表格
Posted 数据库
篇首语:用行动祈祷比用言语更能够使上帝了解。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 检测、建立数据库别名和表格相关的知识,希望对你有一定的参考价值。
对于BDE会话期对象来说 BDE别名特别重要 许多方法都需要传递一个数据库的别名作为参数 Tsession提供了管理BDE别名的功能 但是作者往往等到要发布程序时才发现 你的程序由于找不到别名而无法运行 必须在一台已经装了BDE管理程序的机上才能用 你一定非常失望 不要紧 只要在程序中加入以下语句 你的程序就又可以执行 AddAlias用于为Paradox dBase或文本创建别名 不需要连接参数 只需指定一个路径和默认的驱动程序 AddStandardAlias函数则需要传递三个参数 Name参数用于指定名称 Driver参数用于指定SQL Links驱动程序 List参数用于指定连接参数 procedure TForm FormCreate(Sender: Tobject); begin with Session do begin ConfigMode := cmSession; try AddStandardAlias( WorkMen ExtractFilePath(ParamStr( )) PARADOX ); finally ConfigMode := cmAll; end; end; end;
上面的是单机版的创建别名方法 还有创建SQL服务器别名的方法 procedure TForm FormCreate(Sender: Tobject); var MyList: TStringList; begin MyList := TStringList Create; try with MyList do begin Add( SERVER NAME=IB_SERVER:/PATH/DATABASE GDB ); Add( USER NAME=MYNAME ); end; Session AddAlias( WorkMen INTRBASE MyList); finally MyList Free; end; end;
要说明的是 调用AddStandardAlias或AddAlias函数创建的别名只存在于内存中 程序关闭后就没有了 要把别名永远的保存到BDE配置文件中 请调用SaveConfigFile函数来保存到设置文件中 一 数据库别名(Alias) 的定义和检测方法
当Type 为STANDARD 时 别名定义最为简单 这时仅能采用PARADOX DBASE ASCIIDRV 三种数据库作为缺省的驱动程序(DEFAULT DRIVER)
另外 还要定义数据库存放路径(PATH) 和ENABLE BCD 才能建立一个完整的数据库别名
Delphi 的数据库应用程序能自动提供一个Session 组件 这个Session 组件即为应用程序与BDE 的接口
检测别名
通过调用Session GetAliasNames(list:Tstrings) 方法 可将当前BDE 配置中的所有数据库别名的名称存放到List 字符 串列表中 list IndexOf( 需要检测的别名 ) 的值会告诉我们这个别名是否存在 ( 其值为 时不存在)
增加一个新的别名
Session 组件的过程AddStandardAlias(const Name Path DefaultDriver: string) 可以增加一个标准类型的数据库别名 例如增加一个名为Cntssamp 缺省数据库驱动程序为PARADOX 存放路径为c:\\delphp 的别名
Session AddStandardAlias( Cntssamp c:\\delphp Paradox );
BDE 配置文件存盘
Session SaveConfigFile;
二 数据库中表格的定义和检测方法
数据库中表格的定义 维护和使用 只有在数据库别名正确设置的情况下才有意义 以TTable 组件为例 必须设置其DatabaseName 为一个实际存在的别名
检测表格是否存在
通过调用Session GetTableNames(const DatabaseName Pattern: string; Extensions SystemTables: Boolean; List: TStrings) 方法 可将当前指定数据库别名中所这个表格是否存在( 其值为 时不存在)
建立一个表格
第一步 设置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 建立表格
三 一个实例
在Form Formcreate 事件中写入如下代码 程序启动时 将自动检测是否存在数据库别名Cntssamp 如果没有则建立之 自动检测别名Cntssamp 中是否存在表格TSK( 图书库) 如果没有则自动建立表格TSK
procedure TForm FormCreate(Sender: TObject); var ap:TStringList; 字符串列表变量 answer:Integer; begin ap:=TStringlist Create; Session GetAliasNames(ap); 取得别名列表 if (ap IndexOf( Cntssamp )= ) then 判断别名是否存在 begin answer:=Application MessageBox( 别名Cntssamp不存在 现在创建吗? BDE信息窗口 mb_OKCancel); 增加一个名为Cngzsamp的数据库别名 if answer=IDCANCEL then begin ap Free; Exit; end; Session AddStandardAlias ( Cntssamp c:\\delphp Paradox ); Session SaveConfigFile; BDE配置文件存盘 end ;
cha138/Article/program/Delphi/201311/25034相关参考
知识大全 EXCEL表格中建立一个连结,指向另一个EXCEL表中的某个特定工作薄
EXCEL表格中建立一个连结,指向另一个EXCEL表中的某个特定工作薄 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶
如何将excel表格中数据透视后的汇总一栏去掉呢?数据透视表中右击,数据透视表选项,汇总和筛选选项卡中,把显示行总计和显示列总计前面的勾取消,确定。EXCEL表格中数据透视表怎么使用数据透视表其实就是
知识大全 Excel 表格里,输入数据后,数据的后两尾老是变成0 ,请教高手,怎么设置单元表格
Excel表格里,输入数据后,数据的后两尾老是变成0,请教高手,怎么设置单元表格? 以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容
从数据库表格中随机抽取行有什么用?因为有时候你会想要给用户展示一些随机的信息下面介绍在几个流行的数据库中提取随机行的代码(CTO编者CTO曾介绍过有关随机数据读取的方法其中包括ASPNET中随机读
——此文章摘自《Delphi开发经验技巧宝典》定价¥ 特价¥购买>>//tracklinktechcn/?m_id=dangdang&
知识大全 如何快速查找Excel表格中某列中连续5次出现同一数据表格
如何快速查找Excel表格中某列中连续5次出现同一数据表格 以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
知识大全 导入Excel电子表格数据到SQL Sever数据库的方法
导入Excel电子表格数据到SQLSever数据库的方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下
Struts自定义标签--使用表格显示数据 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! app
知识大全 在Excel表格里怎么看一个数据在众多数据中的排名
在Excel表格里怎么看一个数据在众多数据中的排名?请说详细步骤 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起
excel表格一列中跳过过空格自动上移数据选定区域按F5定位一定位条件一空值一鼠标右键点被选中的空值单元格一删除一下方单元格上移一确定excel表格怎么实现同一列中每个数据输入自动统计个数?假设输入的