STANDARD 时,其别名定义最为简单,但这时仅能使 用 Paradox,dBASE,ASCIIDRV 三种数据库作为默认的驱动程序。另外还需定义数据库存 储路径(PATH)和 ENABLE BCD,这样才能建立一个完整的数据库别名。 Delphi 的数据库应用程序能自动提供一个 Session 组件,这个 Session 组件即为应用程 序与 BDE 的接口。 1. 检测别名 通过调用 Session.GetAliasNames(list:Tstrings)方法, 可将当前 BDE 配置中的所有数 据库别名的名称存放到 List 字符串列表中。然后调用 list.IndexOf(需要检测的别名')函 数,该函数的返回值可用来检测数据库别名是否存在(若其值为-1 则不存在) 。 2. 添加别名 使用 Session 组件的过程 AddStandardAlias(constName,Path,DefaultDriver:string),可 以添加一个标准类型的数据库别名。如添加一个数据库别名为 NewAlias,其默认数据 库驱动程序为 Paradox、存储路径为 c:\instance1,则可以使用下面的语句。 Session.AddStandardAlias('NewAlias',' c:\instance1','Paradox'); 3. BDE 配置文件存盘 使用 Session.SaveConfigFile 语句可将设置信息保存。 一般可以在窗体的 OnCreate 事件中添加检测和创建数据库别名的程序代码,下面就是 一个在运行期实现上述功能的例子。首先单击 Delphi 工具栏上的“New Form”按钮,新建 一窗体,在该窗体上添加一个 Table 组件,用以提供 TSession 对象。然后在窗体的 OnCreate 事件中添加如下所示的代码,程序执行时,系统会首先检测 NewAlias 别名是否存在,若不 存在,提示用户是否创建这个别名,如图 4 所示。 Procedure TForm1.FormCreate(Sender: TObject); var sl:TStringList; //字符串列表变量 re:Integer; begin sl:=TStringlist.Create; Session.GetAliasNames(sl); //取得别名
列表 if (sl.IndexOf('NewAlias')=-1) then /
/判断别名是否存在 begin re:=Application.MessageBox('别名 NewAlias 不存在,现在创建吗?','BDE 信息窗口 ',mb_OKCancel); if re=IDCANCEL then begin sl.Free; Exit; end; Session.AddStandardAlias('newAlias','c:\instance1','Paradox');
//增加一个名为 NewAlias 的数据库别名
Session.SaveConfigFile; end ; sl.free; end;
//保存 BDE 配置文件
图 4 提示信息
1.1.4 Delphi 连接数据库的方式有哪些
---- Delphi 访问数据库的方式主要有 3 种,包括直接访问,如访问标准数据库类型 Paradox 和 dBASE;通过 ODBC 访问,如访问 Access、Foxpro 等数据库;通过内嵌(Native)方式 访问数据库,如访问 SQLServer、Oracle、DB2 等。下面以 Table 组件为例说明这 3 种方式 的特点和用法。 1. 直接访问 ----Delphi 可以直接访问诸如 Paradox 和 dBASE 的标准数据库类型,而不需要什么特别 的设置,只需要把文件路径或数据库别名赋值给 Table 组件的属性 DatabaseName 就可 以访问该路径下的数据表了。 2. 通过 ODBC 访问 ----访问 Paradox 和 dBASED 以外的数据库,通常可通过 ODBC 来实现。
Delphi 可以访 问支持 ODBC 的数据库系统,如 Access、SQLServer 和 Oracle 等。当然,通过 ODBC 访问数据库时, 首先要使用 Windows 的控制面板或 Delphi 的数据库引擎建立 ODBC 数 据源。 3. 通过内嵌方式访问 Delphi 中还可以不使用 ODBC,而以内嵌方式访问 SQLServer、Oracle、DB2 等数 据库系统。这需要使用数据库别名来指定数据库,数据库别名可以事先建立,也可以在 程序运行时动态创建。前者称为静态别名,后者称为动态别名。使用数据库别名来访问 数据库的方法和使用 ODBC 数据源的情形相同,这里不再赘述。 通过内嵌方式访问数据库的静态别名必须在 BDE 中建立。以访问 SQLServer 数据 库为例, 在建立别名时必须指定数据库服务器的名称 (Servername) 主机名 、 (Hostname) 以及要访问的数据库名称(Databasename),可以指