我正在运行Coldfusion MX 7的服务器上编写CFC。CFC需要能够查询数据库的位置,该数据库的位置将在运行时确定。数据库为SQL Server2005。CFC将服务器的IP地址和数据库名称作为参数,并且内置的Windows身份验证应允许来自计算机的连接。但是,我不知道如何对连接进行编码。自CF5以来,标记不支持connectstring属性。设置系统DSN不够动态。我知道可能有某种方法可以不使用DSN而连接到SQL Server,但是此方法此刻使我无所适从。有谁知道如何做到这一点?

最佳答案

您可以使用datasourceService在CF7上修改数据源。遵循以下思路可能会起作用:

<cfset service = createobject("java","coldfusion.server.ServiceFactory").getDatasourceService()>
<cfset uname = "yourUserName">
<cfset pw = service.encryptPassword("yourPassword")>
<cfdump var="#createobject("java","coldfusion.server.ServiceFactory").getDatasourceService()#">
<cfset ds = service.getDatasources()>
<cfset dsn = "MyDSN">
<cfset thisDS = service.getDatasource(dsn)>
<cfset thisDS.getDatasourceDef().setPassword(pw)><!--- if you need to set the password programmatically --->
<!--- do stuff to set the URL... you can get the appropriate functions from the cfdump of the datasourceservice, above --->
Verifying datasource: #service.verifyDatasource(dsn)# <br>

08-19 22:47