2012-06-13 11 views
8

अक्सर मैं इस तरह कुछ एसक्यूएल लिखें:क्या ऑनलाइन एसक्यूएल को सिंटैक्स-हाइलाइट करना संभव है?

string sql = @" 
    -- Multi-line SQL 
"; 

है कि क्या इस दृष्टिकोण अच्छा है या बुरा है पर एक बहस में हो रही बिना, कोई मुझे बता सकते हैं इस एसक्यूएल प्राप्त करने के लिए सबसे अच्छा तरीका है दृश्य के अंदर प्रकाश डाला जा रहा है क्या स्टूडियो?

एक दृष्टिकोण जो मैं सोच सकता हूं वह अलग .sql फ़ाइलों को बनाने के लिए है और फिर इसे एक स्ट्रिंग के रूप में उपभोग करें ताकि मूल एसक्यूएल को संपादित करते समय, विजुअल स्टूडियो पहचानता है कि यह एक SQL फ़ाइल है और वाक्यविन्यास-हाइलाइट करता है।

यह एक साधारण समस्या को हल करने के लिए एक कठिन दृष्टिकोण प्रतीत होता है। क्या कोई आसान समाधान है?

+3

मैं कल्पना नहीं कर सकता कि वहां एक होगा। आपको पार्सर को एसक्यूएल के रूप में यादृच्छिक तारों की पहचान करने की चाल सिखाना होगा। – Oded

उत्तर

1

यह काम नहीं करेगा क्योंकि अन्य आपको बता रहे हैं। वीएस कैसे पता चलेगा कि कौन से तार एसक्यूएल हैं और जो नहीं हैं। यदि आप एसक्यूएल फाइलों का उपयोग नहीं करना चाहते हैं, तो आप अपना खुद का फाइल एक्सटेंशन ".sqlx" या कुछ और फिर वीएस गुणों में इस एक्सटेंशन के लिए एसक्यूएल एडिटर असाइन कर सकते हैं, इसलिए वीएस को सही रंग कोडिंग लागू करना है।

string sql = System.IO.File.ReadAllText("your path to sql file"); 

यह और भी बेहतर हो सकता है क्योंकि कम से कम आप SQL कोड अलग रखना होगा:

तो फिर तुम कुछ इस तरह कर सकते हैं। हालांकि, मैं दृढ़ता से एंटिटी फ्रेमवर्क या लिंक-टू-एसक्यूएल

5

इस के लिए एक विजुअल स्टूडियो एक्सटेंशन (वीएस 2010 और 2012 के लिए) देखने की दृढ़ता से अनुशंसा करता हूं। इसमें ऐसी समस्याएं हैं जिनकी आप कल्पना करेंगे, जैसे कि एसक्यू को हाइलाइट करना: उन स्ट्रिंग्स में कीवर्ड जिनमें SQL शामिल नहीं है। आपके द्वारा किए गए काम के प्रकार के आधार पर, आप अब भी एसक्यूएल में हाइलाइटिंग न करने के लिए इसे पसंद कर सकते हैं।

http://visualstudiogallery.msdn.microsoft.com/a3a662c6-28eb-4de9-9a29-d328b1ac3f6b

एक बात मैं सिफारिश कर सकते हैं दृश्य स्टूडियो में एसक्यूएल कीवर्ड रंग बदल रहा है सामान्य स्ट्रिंग रंग में बदलाव किया जाना है। इस तरह, हाइलाइटिंग सही होने पर सहायक होती है, लेकिन उन मामलों में विचलित नहीं होती है जहां यह स्ट्रिंग में किसी शब्द को हाइलाइट कर रहा है जिसमें वास्तव में SQL नहीं है।

3

जेटब्रेन ने अभी रेसर्पर 2016.2 जारी किया है जिसमें नियमित अभिव्यक्ति के लिए इनलाइन सिंटैक्स हाइलाइट और इंटेलिजेंस के लिए समर्थन है और /*language=html*/ जैसे कोड टिप्पणियों के साथ एचटीएमएल।

मुझे लगता है कि एक अद्भुत विशेषता है, जो (मुझे विश्वास है) आसानी से एसक्यूएल और लगभग किसी अन्य भाषा का समर्थन करने के लिए बढ़ाया जा सकता है।

मैं यहाँ एक सुविधा का अनुरोध जोड़ दिया है: के रूप में इनलाइन SQL कोड में बहुत आम है https://youtrack.jetbrains.com/issue/RSRP-460656

यह आपके सवाल का जवाब नहीं है, लेकिन मैं उन्हें ऐसी कोई विशेषता जोड़ने पर विचार करेंगे आशा करती हूं कि, (यानी डैपर के साथ काम करना)।

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

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