2011-09-29 21 views
7

जब मैं कोल्डफ्यूजन 8 में cfquery टैग का उपयोग करके एक MySQL तालिका से डेटा का चयन करता हूं, तो कॉलम नाम सभी को अपरकेस में परिवर्तित कर दिया जाता है, भले ही मैंने उन्हें डेटाबेस तालिका में कैमेलकेस में संग्रहीत किया हो। कोल्डफ्यूजन कॉलम नामों के मामले का सम्मान करने का कोई तरीका है?मैं कॉलम नामों को ऊपरी मामले में परिवर्तित करने से कोल्डफ्यूजन को कैसे रोक सकता हूं?

कारण मैं पूछ रहा हूं क्योंकि मैं क्वेरी परिणाम को JSON ऑब्जेक्ट के रूप में वापस कर रहा हूं और मैं जावास्क्रिप्ट पक्ष पर ऊपरी केस प्रॉपर्टी नामों का उपयोग नहीं करना चाहता क्योंकि मैं स्थिरांक के लिए नामकरण सम्मेलन आरक्षित करता हूं।

उत्तर

5

क्वेरी ऑब्जेक्ट पर getMetaData का उपयोग करें। यह क्वेरी में उपयोग किए गए वही मामले को दिखाते हुए कॉलम की एक सरणी देता है।

+1

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

+0

स्पष्टीकरण के लिए, क्या इसका मतलब यह होगा कि मुझे मूल रूप से दो JSON ऑब्जेक्ट्स भेजना होगा, जिसमें परिणाम सेट होता है और एक कॉलम नाम वाला होता है? फिर डेटा को सही गुणों से मिलान करने के लिए अभी भी कुछ मिलान करने वाले एल्गोरिदम करें? या क्या क्वेरी परिणाम ऑब्जेक्ट के साथ cfdbinfo से प्राप्त कॉलम नामों को मर्ज करने का शायद कोई तरीका है? –

+1

मैं शायद सीएफडीबीआईएनएफओ-लुक-अप से कॉलम नामों का उपयोग करके, और क्वेरी के मानों का उपयोग करके JSON को हाथ से बनाऊंगा। –

7
queryName.getMetaData().getColumnLabels() 

वापसी क्वेरी

+0

मुझे लगता है कि उन्हें * डेटाबेस * से मामले की आवश्यकता है। इस मामले में उन्हें उल्लिखित cfdboinfo या mySQL की मेटाडेटा टेबल का उपयोग करने की आवश्यकता है। अनियंत्रित मेटाडाटा विधि एसक्यूएल में इस्तेमाल किए गए मामले को वापस लौटाती है जो पूरी तरह अलग हो सकती है। यह इस बात पर निर्भर करता है कि इसे कैसे टाइप किया गया है। – Leigh

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

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