在本讲中,我们重点介绍一下BDE和数据库别名的有关知识,这是操作数据库的基础。
要想学习写数据库程序,首先必须对BDE要有所了解。BDE有一个操作介面供用户在写程序时对数据库进行配置一些信息,安装完毕后在程序组中可以直接找到执行,其执行程序为bdeadmin.exe,运行它会出现如下的介面。
介面的左半部分有两个选项卡,一个是DataBase,另一个是Configuaration,我们先来介绍Database。
单击Database选项卡,将会列出目前系统中所有的数据库别名。那么数据库别名是什么呢?数据库别名是初学用Delphi进行数据库编程首先碰到的一个问题。Delphi中的许多数据库组件都需要指明数据库名称,数据库名称可以直接指定,如C:\DATA\DEMO.MDB,但在代码中可能多处需要使用数据库名称,如果都这样直接使用数据库的绝对路径名称,写起来比较麻烦,但更麻烦的事情在于如果用户改变了数据库的存放路径(如在安装时让用户指定安装目录)或数据库名称,已编写好的程序(EXE文件)将无法正常工作,即使在编程阶段,也要对所有的代码都进行修改,是否太麻烦了,此时我们最好给数据库另取一个名字,这就是别名,此别名代替数据库的真实路径、名称,用户在编程中不必考虑数据库存放在何处,如果数据库的绝对路径或名称修改了,只需修改别名的配置信息即可,用户的程序无需做任何修改。还有另外一个重要的原因是:在设定数据库别名时,用户需要指明数据库类型,这样Delphi才知道使用什么样的数据库驱动程序。如果直接用数据库绝对路径和数据库真实名称,在使用时需要在程序中用代码指定数据库类型,这样做实在太麻烦了。所以,建议还是使用数据库别名。
数据库别名设定和数据库连接。这里就如何设定数据库别名做详细的介绍。这也是初学者用Delphi进行数据库编程时比较头疼的一个问题。许多有关书籍都讲的不详细,即使讲也只是用标准格式(.DBF .DB )做一下示范,对目前流行的Access等数据库没有介绍。这里将举例说明对不同格式的数据库如何设定别名
标准格式的数据库(STANDARD)
Delphi的标准格式数据库指的是Paradox的数据库(扩展名为DB)和dBase类型的数据库(扩展名为DBF)。对这两种数据库,在设定数据库组件的DataBaseName属性时可以不需要别名,直接输入.DB、.DBF文件所在的路径即可。如:C:\Data。但基于上面所述原因,我们最好还是设定数据库别名。对Paradox、Foxpro、dBase类型的数据库,在BDE Administrator的Object菜单中执行“new…”菜单项(或在BDE界面内任何处单击鼠标右键即可弹出快捷菜单,从中选择“new…”),将会弹出一个数据库驱动程序名窗体,默认格式为STANDARD。单击“OK”按钮,在DataBase卡中出现新的数据库别名“STANDARD1”,用户可以修改为自己所喜欢的名字,这里我们修改为“mydatabase”,在右边的“Definition”卡中用户可定义数据驱动程序,单击“DEFAULT DRIVER”后的输入框从列表中选择,这里我们选择paradox。接下来设定PATH参数,单击PATH后输入框,可直接输入C:\Data,或单击后面的选择目录按钮打开类似于文件夹管理器的界面来选择数据表文件目录。然后在“mydatabase”数据库别名上单击右键,选择“Apply”(应用)即可。这样mydatabase就是数据库C:\Data(此路径下为数据表)的别名。
Access数据库别名的设定和连接
Delphi自3.0版本开始对Access数据库提供了支持。对Access数据库的支持有两种连接方式。一种是本地(Native)数据库连接,另一种是ODBC(Open Database Connectivity)开放式数据库连接。本地方式(native),同前面DBF格式数据库别名设定步骤类似,在创建新的别名(这里别名为test.mdb)时,从Database Driver Name下拉列表中选择“MSACCESS”,在Definition卡中设定好DataBase Name如“C:\Data\Demo.mdb”,LANGDRIVER参数中可选择“Access General”,因为似乎BDE没有提供象DBF数据库那样中文语言驱动,其余的参数可不输入。
ODBC方式。用这种方式主要是对数据源进行设定(其实就是设定数据库别名)。初学者对ODBC一般感到很深奥,其实并不神秘,下面详细说明操作方法。在win9X控制面板中的“32位ODBC”,双击打开ODBC 数据源管理器,如图2-2所示。
单击“添加”按钮后界面如图2-3,从中选择驱动程序,这里选择“Microsoft Access Driver(*.mdb)”,单击“完成”,界面为图2-4所示。在“数据源名(N):”输入数据源名称如“myAccess ”,单击“数据库”框中的DataBase的“选取(S)…”按钮选择要打开的MDB数据库,再单击“高级”按钮,在这里可输入“设定名称”、“密码”,无密码不输。
单击“确定”返回后再单击“确定”按钮,返回界面(图2-5),从中可发现用户刚设定的数据源名称“myAccess file”已经出现在列表中,如要修改可单击“配置”按钮,无误后单击“确定”退出。至此,我们已正确设定了数据源。下面打开BDEAdministrator,
你会发现什么?别名列表中出现了“myAccess ”,它就代表了C:\Data\demo.mdb数据库。也就是说在ODBC中设定的数据源名称就是数据库demo.mdb的别名,不需要BDE设定就可以使用了(如需要可以在BDE中设定一下其它的参数),在数据库组件的DataBaseName属性列表中选中它就可以使用了。
如果不满意这个别名(数据源名)可以按下面的方法去做,在BDE中创建新的别名时在Dadabase Driver Name 中选择“Microsoft Access Driver(*.mdb)”,然后输入新的别名。如“myAccess good”,在Definition卡中设定参数ODBC DSN时选择“myAccess” (数据源名) 。其它的就和前面一样了。这样myAccess good就是demo.mdb数据库的别名。如果这样做demo.mdb就有了两个别名了,建议直接用数据源名做别名(这样简单些)。
另外一种在BDE中直接建立ODBC方式的方法是:单击鼠标右键,选择”new”,从Database Driver Name下拉列表中选择“Microsoft Access Driver(*.mdb)”,自动生成一个如ODBC1的数据库别名,你可以把它修改为自己喜爱的名字。在别名ODBC1上单击鼠标邮件,选择“ODBC Administrator”也可以打开ODBC数据源管理器。其余的步骤同上。但这里常会出现一些问题,在为ODBC1设定参数ODBC DSN时会找不到刚设定的数据源,新设定的数据源也不会以别名的方式出现,需要关闭BDE再重新打开才行。不如直接在控制面板中打开ODBC设定数据源来的方便。其实,对于ODBC方式访问数据库,可以说BDE只起到一个简单的管理作用,并没有太多的实际意义。
Excel文件的工作表别名设定
对于Excel文件来说,也需要使用ODBC建立数据源,方法和用ODBC建立Access
数据库别名是一样的,可参考上面的介绍。
服务器数据库别名设定。服务器数据库如Oracle、Sybase、Informix、Microsoft SQL Server、 Intrbase等,它们的别名设定可以用本地或ODBC方式设定(需要安装驱动程序)。和前面设定别名的操作基本一样。不一样的地方主要为在Definition参数设定中有一个数据库服务器名称(Server Name)需要正确设定。
这里说明一点:对于本地数据库如dBase、Foxpro、Paradox数据库也可用ODBC方式访问,只不过一般没有必要。
用SQL Explore建立数据库别名和连接
在Delphi5.0的DataBase菜单中有一个Explore菜单项,执行它将出现SQL Explorer运行窗口,和BDE的运行界面非常相似,在这里进行建立别名和连接的操作和在BDE中完全一样。用SQLExplore建立别名和连接的优点是,建立好别名和连接后,在右边的窗体中可打开数据表、查看字段属性、查看数据表内容、进行SQL操作。
下面我们来介绍一下Configuaration选项卡。此选项主要用来供用户查看、修改驱动程序及系统的配置信息。分两大部分,一是Driver。Driver下又分为native(本地方式)和ODBC方式,本地方式下列出了目前可用的本地数据库及驱动配置,我们选择MSACCESS来看看右边列出的信息,其中重要的两个配置为:DLL32:IDDA3532.DLL ,DATABASENAME 为:DRIVE:/PATH/DATABASE.MDB,前者说明数据库驱动程序,后者说明数据库名称的输入方式应该是驱动器/路径/MDB数据库名字。这里顺便说一下,用delphi5或delphi4自带的制做安装盘的软件IS Express制做出来的MSAccess数据库的安装程序把BDE打包安装后,运行执行文件,总会出现非法错误,经仔细检查发现安装后DLL32设定的是IDDAO32.DLL,将其修改为IDDA3532.DLL就可以正常运行了。ODBC下列出的是目前可用的ODBC驱动程序的配置信息。二是system,在system下设定的是通用的系统配置信息。其中INIT设定的是设计一个应用系统的初始默认设置。FORMAT下可设定DATE、TIME、NUMBER三个常用配置信息。
在DATE中,我们可以设定如下:
SEPARATOR 用来确定用什么样的分隔符来将年、月、日分开。
MODE 控制如何显示日期格式,有三种方式:0-MDY,1- DMY, 2-YMD,按中国人的习惯应该为2(年月日),在安装BDE时缺省将根据控制面板中的设定配置。
FOURDIGITYEAR是否采用四位年份,缺省情况是用2位,只不过现在我们都应该用四位了。如果设定为false, 则在01/01/00 至12/31/49将被认为是21世纪,如果在01/01/50 至12/31/99被认为属于20世纪
YEARBIASED设定是否将用户输入的两位年份在保存时改为4位,缺省为TRUE.
LEADINGZEROM 设定是否将用户输入的10月份以前的月份自动添加0,比如将1/1/80 变为01/1/80
LEADINGZEROD 设定是否将用户输入的10日以前的日期自动添加0,比如将1/1/80 变为1/01/80
至于TIME和NUMBER设定就很简单了,读者自己看看就明白了。
通过这一讲我们知道如何设定常用类型的数据别名了,下一讲我们就开始设计一个数据库应用程序并讲解用到的数据库组件等内容了,希望读者能坚持读下去!