2011-11-18 20 views
6

यदि संभव हो तो एकाधिक डीएसएन का उपयोग करने के लिए आप कोल्डफ्यूजन 9 के ओआरएम को कैसे कॉन्फ़िगर करते हैं?कई सत्र स्कोप डीएसएन के लिए कोल्डफ्यूजन के ओआरएम को कैसे कॉन्फ़िगर करें?

एप्लिकेशन स्कोप के बजाय सत्र स्कोप के संदर्भ में डेटा स्रोत स्थापित करना संभव है?

या कैसे, सीएफ 9 में, क्या आप कई डीएसएन का उपयोग करने के लिए हाइबरनेट को कॉन्फ़िगर करते हैं?


ऐसा लगता है कि मैं और अधिक विशिष्ट होना चाहिए ... मैं एक समाधान है कि सत्र के आधार पर एक DSN निर्दिष्ट करने के लिए अनुमति देता है के लिए देख रहा हूँ।

यहां परिदृश्य है। हमारे पास एक कस्टम कस्टम एप्लिकेशन है जो एकाधिक डीएसएन का उपयोग करता है जो उप-डोमेन से निर्धारित होते हैं। तो http://abc.domain.com से पहुंचने वाला कोई भी एबीसी डीएसएन का उपयोग करेगा जहां xyz.domain.com पर जाने वाले किसी व्यक्ति xyz DSN का उपयोग करेगा। डीएसएन का नाम निर्धारित होता है जब सत्र बनाया जाता है और इसे सत्र चर के रूप में संग्रहीत किया जाता है।

मैं इस तरह कुछ करने के लिए करना चाहते हैं:

//Artists.cfc

component persistent="true" datasource="#session.dsn#" 
{ 
property name="artistid" generator="increment"; 
property firstname; 
property lastname; 
property address; 
property city; 
property state; 
} 

// Application.cfc

component output="false" { 
THIS.name = "MultipleDsnORMTest"; 
THIS.applicationTimeout = createTimeSpan(0, 0, 0, 0); 
THIS.clientManagement = false; 
THIS.datasource = ""; // Leaving black ==> "No data source specified." 
         // Setting to cfbookclub ==> "ORM is not 
         // configured for the current application." 
         // Setting to cfartgallery works but doesn't 
         // demonstrate use multiple DSNs 
THIS.loginStorage = "cookie"; 
THIS.sessionManagement = true; 
THIS.sessionTimeout = createTimeSpan(0, 0, 0, 0); 

THIS.ormenabled = true; 
THIS.ormsettings = {}; 
} 

उत्तर

1

हालांकि यह संभव है आवेदन दायरे में ORM के साथ एकाधिक डेटा स्रोतों का उपयोग करने के ColdFusion 9 कॉन्फ़िगर करने के लिए, यह संभव नहीं ColdFusion 9 की ORM कॉन्फ़िगर करने के लिए के भीतर कई DSNs के साथ काम करने के लिए है सत्र का दायरा

+0

तो, क्या आपको अपने 'Artists.cfc' में' datasource = "xyz" 'hardcoded (xyz) रखना होगा? या इसे गतिशील बनाने के लिए एक रास्ता मिला? – Sergii

+0

@ सर्गी मैंने कई डेटा स्रोतों पर उनकी सीमाओं के कारण सीएफ ओआरएम के साथ बहुत कुछ नहीं किया है। जितना मुझे उम्मीद है कि यह सच नहीं है, मेरा मानना ​​है कि जवाब यह है कि डेटासोर्स को हार्ड-कोड किया जाना चाहिए। उम्मीद है कि अगर मैं गलत हूं तो कोई मुझे सही करेगा। मैंने खराब प्रोग्रामिंग प्रथाओं के रूप में हार्ड कोडिंग को माना, इसलिए मुझे उम्मीद है कि मैं गलत हूं। – Micah

1

ColdFusion 9.0.1 अद्यतन के साथ शुरू की , आप multiple data sources with ORM का उपयोग कर सकते हैं। प्रति घटक एक समय में एक। निर्दिष्ट करें कि कौन सा डेटाबेस उपयोग किया जाना चाहिए, यह निर्दिष्ट करने के लिए, अपने ऑब्जेक्ट में "डेटासोर्स" विशेषता का उपयोग करें।

<cfcomponent displayname="firstObject" datasource="dbOne"> 
    <cffunction> 
     ... 
    </cffunction> 

    ... 
</cfcomponent> 

या

component datasource = 'dbOne'{ 
    ... 
} 
+0

एप्लिकेशन.cfc स्तर पर डिफ़ॉल्ट को परिभाषित करना संभव नहीं था, जिसका अर्थ है कि यदि आप कहीं और डेटा संदर्भित कर रहे हैं तो आपको केवल डेटासोर्स विशेषता जोड़ने की आवश्यकता होगी? –

+0

यदि आप ऑब्जेक्ट/घटक में डेटासोर्स विशेषता को छोड़ देते हैं, तो application.cfc में परिभाषित डिफ़ॉल्ट डेटासोर्स का उपयोग –

+0

किया जाएगा आप एप्लिकेशन.cfc स्तर डेटासोर्स को क्या सेट करते हैं? – Micah

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^