2012-11-21 46 views
14

क्या ओडाटा निर्दिष्ट करता है कि स्ट्रिंग फ़ील्ड पर फ़िल्टर स्थितियों का मूल्यांकन केस-सेंसिटिव या केस-असंवेदनशील रूप से किया जाना चाहिए?

उदाहरण: (डॉक्स से)

/Suppliers?$filter=Address/City eq 'Redmond' 

इस केस-संवेदी या नहीं होने की उम्मीद है?

यदि मैं दोनों विकल्पों की पेशकश करना चाहता हूं, तो यह कैसे व्यक्त किया जा सकता है?

/Suppliers?$filter=tolower(Address/City) eq 'redmond' 

या

/Suppliers?$filter=tolower(Address/City) eq tolower('Redmond') 

है वहाँ एक और अधिक संक्षिप्त केस-संवेदी मिलान व्यक्त करने के लिए जिस तरह से नहीं: वहाँ एक tolower() फ़ंक्शन उस तरह इस्तेमाल किया जा सकता है?

+0

मुझे 'संपर्क' इकाई के 'EMailAddress1' फ़ील्ड पर' tolower' का उपयोग करके निम्न त्रुटि मिलती है: 'अमान्य' जहां 'स्थिति'। एक इकाई सदस्य अमान्य संपत्ति या विधि का आह्वान कर रहा है। 'कोई विचार? –

उत्तर

12

"eq" ऑपरेटर केस संवेदनशील होना चाहिए। टोलवर (या टॉपर) का उपयोग वर्तमान में ऐसा करने का अनुशंसित तरीका है।

+0

मुझे 'संपर्क' इकाई के 'EMailAddress1' फ़ील्ड पर' tolower' का उपयोग करके निम्न त्रुटि मिलती है: 'अमान्य' जहां 'स्थिति'। एक इकाई सदस्य अमान्य संपत्ति या विधि का आह्वान कर रहा है। 'कोई विचार? –

+0

कैसे करें ?, उदाहरण की आवश्यकता है। – Mike

+0

@ माइक - यहां एक उदाहरण है:/लोग? $ फ़िल्टर = tolower (नाम) eq tolower ('JAmes') - यह आपको सभी लोगों (या व्यक्ति वस्तुओं) देना चाहिए जिसका नाम 'जेम्स' है (केस असंवेदनशील, हो सकता है ' जेम्स ',' जेम्स ',' जाम ', आदि उम्मीद है कि इससे मदद मिलेगी :) – Yulian

0

मुझे उम्मीद है कि यह आपके डेटाबेस संयोजन सेटिंग पर निर्भर है, क्योंकि ओडाटा सेवा सिर्फ एक क्वेरी कर रही है। यदि विटेक का उत्तर सही है, तो ओडाटा परिणाम सेट पर कुछ पोस्ट क्वेरी फ़िल्टरिंग कर रहा है, और यह अजीब होना चाहिए, है ना?

0

यह डेटाबेस पर निर्भर नहीं है। यहां तक ​​कि यदि आप संवेदनशील तरीके से डेटाबेस के विरुद्ध क्वेरी करते हैं तो ओडाटा अपना अतिरिक्त फ़िल्टरिंग करेगा और आपके डेटा को फ़िल्टर करेगा।