2014-10-21 2 views
0

Это может быть глупый вопрос, но когда мой источник данных находится на странице cfm, он будет работать нормально, но когда я помещаю источник данных в свой файл application.cfc, это приводит к ошибкам.Coldfusion Application.cfc

код из файла CFM

<cfquery name = "getlist" datasource="jeb48_shoppingcart"> 
SELECT ProductID, ProductName, ProductQty, ProductPrice, ProductDescription 
FROM Products; 
</cfquery> 

код из CFC

<cfcomponent> 
    <cfset This.name = "TestApplication"> 
    <cfset This.clientStorage = "jeb48_northwind"> 
    <cfset This.clientmanagement="True"> 
    <cfset This.loginstorage="Session"> 
    <cfset This.sessionmanagement="True"> 
    <cfset This.sessiontimeout="#createtimespan(0,0,10,0)#"> 
    <cfset This.applicationtimeout="#createtimespan(5,0,0,0)#"> 
</cfcomponent> 
+3

В следующий раз «ошибки» очень расплывчаты. Если вы получаете сообщение об ошибке, добавьте сообщение об ошибке * actual *. – Leigh

+0

Вы пытались изменить порядок и задавать управление клиентом перед установкой clientStorage? Также убедитесь, что ваша база данных настроена для клиентских переменных, см. Http://help.adobe.com/livedocs/coldfusion/8/htmldocs/help.html?content=sharedVars_08.html Убедитесь, что вы установили CDATA и CGLOBAL таблицы, указанные в приведенной выше ссылке. – osekmedia

ответ

9

Ваш Application.cfc не устанавливает источник данных правильно.

clientstorage используется client переменных - read more about that here

datasource используется для cfquery источников данных:

<cfset this.datasource="cfartgallery">

Вы можете прочитать больше о datasource собственности here

0

Одно решение было бы определите свой источник данных как переменную приложения с вашим onapplicati на старте. Если у вас несколько источников данных, вы можете использовать переменную приложения, содержащую структуру источников данных. Энтони прав, вы только создаете ссылку на источник данных для хранения клиентов. Это не значит, что это работает.

<cfset APPLICATION.dsn = {}> 
<cfset APPLICATION.dsn.main = "jeb48_northwind"> 
<cfset APPLICATION.dsn.logging = "loggingDataSource"> 

<cfquery name = "getlist" datasource="#APPLICATION.dsn.main#"> 
SELECT ProductID, ProductName, ProductQty, ProductPrice, ProductDescription 
FROM Products; 
</cfquery> 
+0

Я думаю, что неправильно понял вопрос. :) – osekmedia

+1

Это то, что я понял как решение вопроса. Область «this» в Application.cfc не копируется в область «приложение». – ssteinbeck

+0

'datasource' не нужно заходить в область' application'. Определение источника данных означает, что вы можете полностью опустить свойство datasource в 'cfquery', например' '. более подробная информация доступна http://www.bennadel.com/blog/1642-learning-coldfusion-9-application-specific-data-sources.htm – Antony

Смежные вопросы