Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16495022
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 20:46:33

下载本文示例代码
p align="center">在Delphi中建立和使用别名   通常我们在Delphi外,通过使用Borland 数据库引擎(BDE)的设置单元(bdecfg.exe)来建立和设置别名(Alias),但是,实际上用户可以在Delphi或应用程序中用TDatabaseComponent或其他方法建立和使用别名,而不必在IDAPI.CFG中预先定义。   建立有效的别名是非常重要的, 别名详细说明了数据库的定位信息和连接数据库服务器的参数,当发布应 用程序时不必担心IDAPI.CFG中是否有某项设置。 利用TDatabaseComponent建立别名   建立和设置一 个使用标准数据库的别名的步骤如下。//通过“对象观察器”建立BDE别名:   1.建立一个新工程(Project)。   2.将组件(Component)TDatabase、TTable、TDataSource、TDBGrid 和TButton放在FORM上。   3.双击TDatabaseComponent或在TDatabase快速菜 单上选择DatabaseEditor运行Database属性编辑器。   4.将DatabaseName设置成‘ZldchAlias’,这个名字 将被当作别名,用来设置数据集组件TTable、TQuery、TStoredProc等的DatabaseName属性。   5.将DriverName设置成STANDARD。   6.单击Defaults按钮,将PATH=自动加在Parameter Overrides框中。   7.将PATH=设置成PATH=C:,单击OK按钮关闭Database Editor。   8.单击OK按钮关闭DatabaseEditor。   9.将TTable的DatabaseName属性设置成‘ZldchAlias’。   10.将TDataSource的DataSet属性设置成‘Table1’。   11.将DBGrid的DataSource属性设置成‘DataSource1’。   12.在Tbutton的OnClick事件过程中加入下列代码: procedureTForm1.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 withForm1.Database1do DatabaseName:=AliasN; DriverName:= ‘STANDARD’; Params.Clear; Params.Add(‘PATH=’ +DbLocat); Params.Add(‘DEFAULT DRIVER=’+DriverN); end end; procedureTForm1.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.将DriverName设置为INTRBASE。   6.单击Defaults按钮,下列内容 会自动加在ParameterOverrides框中: SERVERNAME=IB_SERVER:/PATH/DATABASE.GDB USERNAME=MYNAME OPENMODE=READ/WRITE SCHEMACACHESIZE=8 LANGDRIVER= SQLQRYMODE= SQLPASSTHRUMODE=NOTSHARED SCHEMACACHETIME=-1 PASSWORD=   7.将以上内容改为: SERVERNAME=C:\ProgramFiles\Borland\Delphi 3\Demos\Data\EMPLOYEE.GDB USERNAME=SYSDBA OPENMODE=READ/WRITE SCHEMACACHESIZE=8 LANGDRIVER= SQLQRYMODE= SQLPASSTHRUMODE=NOTSHARED SCHEMACACHETIME=-1 PASSWORD=masterkey   8.将TDatabase的属性LoginPrompt 设置成‘False’,如用户在ParameterOverrides框中给出了正确的PASSWORD,连接数据库时将不会提示要求输入口令。请注意:如果在ParameterOverrides 框中给出的PASSWORD不正确,而TDatabase的属性LoginPrompt设置为‘False’,程序运行时将出错,但并不会提示要求重新输入正确口令。Intrbase安装 后,系统唯一授权的用户是SYSDBA,缺省口令是“masterkey”,所有其他的用户都必须由SYSDBA添加,所以在Intrbase系统安装后要尽快更改用户SYSDBA 的口令。   9、10、12步同上文的8、9、11步。   11.将TDataSource的DataSet属 性设置成‘Query1’。   13.在Tbutton的OnClick事件过 程中加入下列代码: procedureTForm1.Button1Click(Sender:Tobject); begin Query1.SQL.Clear; Query1.SQL.ADD(‘SELECT DISTINCT*FROMCUSTOMERC,SALESSWHERE (S.CUST_NO=C.CUST_NO)ORDERBYC.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,它可解释成[cfmVirtualorcfmPersistent]。如果设置模式值为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连接驱动类型的字符串、一个汇集连接参数的列表字符串,其格式为: procedureAddAlias(constName, Driver:string;List:TStrings);   AddStandardAlias需要三个参数:别名名、PARADOX和DBASE表存放的完整路径、当试图打开一个没有扩展名表时的默认驱动类型,其格式为: procedureAddStandardAlias(const Name,Path,DefaultDriver:string);   当为Session添加一个别名时,它仅对该Session和其他设置模式值为cfmPersistent的Session有效。为了使新建的别名对所有的应用程序有效,在建立别名后应该调用SaveConfigFile方法。   修改别名可以调用过程ModifyAlias,它需要二个参数:将要修改的别名名和包含修改后连接参数值的列表串,格式为: procedureModifyAlias(Name: string;List:TStrings);   方法DeleteAlias可以使别名对Session 无效,但它不会删除写入BDE设置文件的别名。如果要将其从BDE设置文件中删除,需要在调用DeleteAlias后再调用SaveConfigFile。DeleteAlias只需一个参数:别名名。其格式为: procedureDeleteAlias(const Name:string);   利用Session操作别名具有更大的灵活性,将给编程和发布程序尤其是C/S应用程序带来很大方便。以上例程在Win95、Delphi3.0下调试通过。 p align="center">在Delphi中建立和使用别名   通常我们在Delphi外,通过使用Borland 数据库引擎(BDE)的设置单元(bdecfg.exe)来建立和设置别名(Alias),但是,实际上用户可以在Delphi或应用程序中用TDatabaseComponent或其他方法建立和使用别名,而不必在IDAPI.CFG中预先定义。   建立有效的别名是非常重要的, 别名详细说明了数据库的定位信息和连接数据库服务器的参数,当发布应 用程序时不必担心IDAPI.CFG中是否有某项设置。 利用TDatabaseComponent建立别名   建立和设置一 个使用标准数据库的别名的步骤如下。//通过“对象观察器”建立BDE别名:   1.建立一个新工程(Project)。   2.将组件(Component)TDatabase、TTable、TDataSource、TDBGrid 和TButton放在FORM上。   3.双击TDatabaseComponent或在TDatabase快速菜 单上选择DatabaseEditor运行Database属性编辑器。   4.将DatabaseName设置成‘ZldchAlias’,这个名字 将被当作别名,用来设置数据集组件TTable、TQuery、TStoredProc等的DatabaseName属性。   5.将DriverName设置成STANDARD。   6.单击Defaults按钮,将PATH=自动加在Parameter Overrides框中。   7.将PATH=设置成PATH=C:,单击OK按钮关闭Database Editor。   8.单击OK按钮关闭DatabaseEditor。   9.将TTable的DatabaseName属性设置成‘ZldchAlias’。   10.将TDataSource的DataSet属性设置成‘Table1’。   11.将DBGrid的DataSource属性设置成‘DataSource1’。   12.在Tbutton的OnClick事件过程中加入下列代码: procedureTForm1.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 withForm1.Database1do DatabaseName:=AliasN; DriverName:= ‘STANDARD’; Params.Clear; Params.Add(‘PATH=’ +DbLocat); Params.Add(‘DEFAULT DRIVER=’+DriverN); end end; procedureTForm1.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.将DriverName设置为INTRBASE。   6.单击Defaults按钮,下列内容 会自动加在ParameterOverrides框中: SERVERNAME=IB_SERVER:/PATH/DATABASE.GDB USERNAME=MYNAME OPENMODE=READ/WRITE SCHEMACACHESIZE=8 LANGDRIVER= SQLQRYMODE= SQLPASSTHRUMODE=NOTSHARED SCHEMACACHETIME=-1 PASSWORD=   7.将以上内容改为: SERVERNAME=C:\ProgramFiles\Borland\Delphi 3\Demos\Data\EMPLOYEE.GDB USERNAME=SYSDBA OPENMODE=READ/WRITE SCHEMACACHESIZE=8 LANGDRIVER= SQLQRYMODE= SQLPASSTHRUMODE=NOTSHARED SCHEMACACHETIME=-1 PASSWORD=masterkey   8.将TDatabase的属性LoginPrompt 设置成‘False’,如用户在ParameterOverrides框中给出了正确的PASSWORD,连接数据库时将不会提示要求输入口令。请注意:如果在ParameterOverrides 框中给出的PASSWORD不正确,而TDatabase的属性LoginPrompt设置为‘False’,程序运行时将出错,但并不会提示要求重新输入正确口令。Intrbase安装 后,系统唯一授权的用户是SYSDBA,缺省口令是“masterkey”,所有其他的用户都必须由SYSDBA添加,所以在Intrbase系统安装后要尽快更改用户SYSDBA 的口令。   9、10、12步同上文的8、9、11步。   11.将TDataSource的DataSet属 性设置成‘Query1’。   13.在Tbutton的OnClick事件过 程中加入下列代码: procedureTForm1.Button1Click(Sender:Tobject); begin Query1.SQL.Clear; Query1.SQL.ADD(‘SELECT DISTINCT*FROMCUSTOMERC,SALESSWHERE (S.CUST_NO=C.CUST_NO)ORDERBYC.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,它可解释成[cfmVirtualorcfmPersistent]。如果设置模式值为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连接驱动类型的字符串、一个汇集连接参数的列表字符串,其格式为: procedureAddAlias(constName, Driver:string;List:TStrings);   AddStandardAlias需要三个参数:别名名、PARADOX和DBASE表存放的完整路径、当试图打开一个没有扩展名表时的默认驱动类型,其格式为: procedureAddStandardAlias(const Name,Path,DefaultDriver:string);   当为Session添加一个别名时,它仅对该Session和其他设置模式值为cfmPersistent的Session有效。为了使新建的别名对所有的应用程序有效,在建立别名后应该调用SaveConfigFile方法。   修改别名可以调用过程ModifyAlias,它需要二个参数:将要修改的别名名和包含修改后连接参数值的列表串,格式为: procedureModifyAlias(Name: string;List:TStrings);   方法DeleteAlias可以使别名对Session 无效,但它不会删除写入BDE设置文件的别名。如果要将其从BDE设置文件中删除,需要在调用DeleteAlias后再调用SaveConfigFile。DeleteAlias只需一个参数:别名名。其格式为: procedureDeleteAlias(const Name:string);   利用Session操作别名具有更大的灵活性,将给编程和发布程序尤其是C/S应用程序带来很大方便。以上例程在Win95、Delphi3.0下调试通过。 下载本文示例代码


在Delphi中建立和使用别名在Delphi中建立和使用别名在Delphi中建立和使用别名在Delphi中建立和使用别名在Delphi中建立和使用别名在Delphi中建立和使用别名在Delphi中建立和使用别名在Delphi中建立和使用别名在Delphi中建立和使用别名在Delphi中建立和使用别名在Delphi中建立和使用别名在Delphi中建立和使用别名在Delphi中建立和使用别名在Delphi中建立和使用别名在Delphi中建立和使用别名
阅读(299) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~