2011-06-23 40 views
1

Coldfusion application.cfc中的ORM設置在其他任何運行之前運行(onapplicationstart等)。那麼如何在application.cfc中設置一個動態數據源(ORM初始化之前的代碼)呢?我們可以在之後設置它,並將ORM重新指向動態數據源,但這要求硬編碼數據源也必須是有效的。充其量,這是微不足道的。如何爲ORM設置動態數據源?

下面是一個例子:

<cfscript> 
this.name = "someapp_#hash(cgi.http_host)#"; 
this.ormenabled = "true"; 
this.ormsettings = { cfclocation = "config/definitions", eventhandling = "true",datasource="STATICDATASOURCE" }; 
</cfscript> 

如果它不是在的Application.cfc範圍內指定的,那麼你得到這樣的錯誤「ORM沒有配置當前應用程序。」

我們需要能夠從服務器上的文本文件獲取數據源。

回答

2
this.datasource="YourDatasourceName"; 

好吧,如果你想存儲文件,在這個例子中,我們將其稱爲「datasource.xml」包括:

<dataSourceName>Name goes here</dataSourceName> 

您可以用它閱讀

dataFile = fileRead("pathToFile/datasource.xml"); 
data = xmlParse(dataFile); 
dataSourceName = data.dataSourceName.xmlText; 

this.datasource=dataSourceName; 
0

如果未定義,ORM數據源只使用默認數據源。

說了這麼多,如果你想添加/刪除動態數據源,請參閱管理員API爲:http://help.adobe.com/en_US/ColdFusion/9.0/Admin/WSc3ff6d0ea77859461172e0811cbf364104-7fcf.html(可用自CF8)

我不知道,如果你可以重新設置this.ormsettings.datasource到別的東西在運行時間(即onApplicationStart()?或onServerStart()?),但許多設置可以重新設置。你可能想嘗試一下。

相關問題