文章作者 : Linkfoxo [ linkfoxo@yahoo.com ] Web URL : http://
上载日期 : 2000-11-20
用户在ColdFusion Administrator中验证数据源是否正确连接时经常遇到问题,本文将为你提供一些数据库连接方面的技巧。
连接数据库
ColdFusion Server可以通过ODBC,OLE DB以及大型数据库的native driver(只有企业版有此功能)和任何类型的数据库通信。
ODBC
ColdFusion Server可以和任何带有 ODBC3.0 兼容驱动程序的数据库进行通信。ColdFusion使用微软的ODBC子系统并和微软公司ODBC驱动程序包一起销售,所包括的驱动程序适用于(Microsoft Access, Microsoft SQL Server, Paradox, 等数据库)。 Allaire公司自己并不开发ODBC驱动。一些第三方厂商如Merant/Intersolv、 OpenLink Software等也开发ODBC数据库驱动。
OLE DB
许多厂商(包括微软公司)把OLE DB和ODBC驱动程序放在一起发放。OLE DB指另外一种数据库连接方式。
Native Database Driver
Coldfusion Server企业版可以和Sybase 11, Oracle7.3/8.*、Informix 7.3以及DB2使用Native Drivers进行通信。
--------------------------------------------------------------------------------
配置数据源
ODBC
如果你的数据库属于微软公司产品,Access, Microsoft SQL Server, Paradox, dBASE, FoxPro, Visual FoxPro, Excel or 文本格式, 你可以在ColdFusion Administrator中建立数据源定义。如果是其他类型数据库,可以在ODBC Control Panel中为它创建一个System DSN (不是文件或用户DSN)(Start -> Settings -> Control Panels -> ODBC Data Sources)。然后打开ColdFusion Administrator,你应该可以看到你的数据源了。
OLE DB
配置OLE DB数据源必须使用ColdFusion Administator。
Native Database source
使用下面两个步骤可以配置Native Data Sources:
在你的机器上安装该数据库的客户端软件,一般客户端软件和数据库都放在同一张光盘中。在进行下面的步骤之前,你应该安装、配置数据库,并可以通过客户端软件和数据库进行连接。
在ColdFusion Administrator中设置数据源。
--------------------------------------------------------------------------------
当数据源连接失败的时候
在某些情况下,ColdFusion Administrator中会发生数据源连接失败,甚至报错。你可以试试以下步骤确认数据源是否连接成功。
确认你已经在ColdFusion Administrator中设置了数据库的连接。检查下列选项:
服务器名称/主机字符串或连接数据库文件的路径
ColdFusion认证数据库使使用的用户名及密码。必须在ColdFusion上进行合法的数据库登录。在每个数据源定义界面上你点击CF setting按钮,可以看到底部的username/password。
如果你使用的是OLE DB,确认你选择的驱动程序供应商名称是正确的。对于 Microsoft OLE DB 驱动来说, 所有的连接MS SQL 6.5/7.0数据库的OLE DB 驱动程序供应商应该是SQLOLEDB,其他如Access等数据库的驱动程序供应商应为JETOLEDB. 如果使用的是其他厂商的 OLE DB数据源, 你最好查询一下他们的文档以确认供应商名字。
升级ODBC驱动程序。你应该坚持使用由原数据库厂商提供的ODBC驱动。在升级ODBC驱动之后,应重新启动机器并重新检查DSN定义。以下是下载最常用数据库ODBC驱动程序的URL列表,如果你使用的数据库未排列在下表中,请和你的数据库厂商联系。
Microsoft – Access, SQL 6.5/7.0, Excel, FoxPro, Visual FoxPro, Paradox, Text.
Oracle – Oracle 7.x and 8.x
Sybase – Sybase SQL Server 11.x
进入ODBC Control Panel,点击你的System DSN,点击Configure...按钮进入配置页面。有一些选项只能从ODBC Control Panel中进行设置。例如,你可以设置关于网络的内容(Named Pipes, MultiProtocol, TCP/IP等) 。一个SQL6.5/7/0 System DSN将不断和服务器建立通信。确认所有数据源相关的配置参数都是正确的。
对基于ODBC的连接,可以下载sqlCon32.exe,尝试连接数据库。如果你用这个工具还无法连接数据库,那你可能在使用ColdFusion之前还存在其他一些ODBC问题。
对于基于文件的数据库(Access, Paradox等),不要将数据库设置为只读,并将以user身份登录到ColdFusion service中的user访问文件/包含文件的目录权限设置为读和写。
在本地机器中将运行ColdFusion services的系统帐号(默认)改为管理员权限。要完成这个任务,点击 Start | Settings | Control Panels | Services | 双击所有3个 ColdFusion services并修改帐户。如果改变帐户可以解决问题,那表明服务器上存在一些安全隐患需要解决,检查以下两个项目:
确认系统帐户对\cfusion\bin 目录、web root所有目录下.cfm的文件拥有权限,并且,还包括你的内置数据库软件所在目录。
如果你更改了运行ColdFusion的帐户,确认该帐户对本机拥有管理权限(包括Log on As A Service),且该帐户位于本地机器的Administrators 组中。
如果以上步骤均不奏效,可以建立一个包含CFQUERY的简单.cfm模板查询你的数据源,将该文件保存在web root下并在浏览器中运行。假如你建立了一个名为testdatasource的数据源,该数据源中包含名为testtable的表格,你可以建立如下cfm文件:
<cfquery name="testquery" datasource="testdatasource">
select * from testtable
</cfquery>
你还可以在CFQUERY 标识中包含一个用户名和密码,看该查询是否运行。没有错误信息返回,数据源就是在正常工作,你应该可以继续使用该数据源。
|