2010-03-11 13 views
7

का उपयोग कर छवियों को स्टोर और पुनर्प्राप्त कैसे करें SQL सर्वर डेटाबेस में फ़ाइलों को सम्मिलित करने का प्रयास करते समय मुझे कठिनाइयों का सामना करना पड़ रहा है।एसक्यूएल सर्वर (सर्वर प्रबंधन स्टूडियो)

  1. क्या डेटा प्रकार मैं छवि फ़ाइलों को स्टोर करने के लिए उपयोग करना चाहिए (jpeg/png/gif/आदि): मैं इस नीचे के रूप में सबसे अच्छा के रूप में मैं कर सकते हैं तोड़ने की कोशिश करेंगे? अभी मेरी तालिका image डेटा प्रकार का उपयोग कर रही है, लेकिन अगर varbinary बेहतर विकल्प होगा तो मैं उत्सुक हूं।

  2. मैं डेटाबेस में छवि को सम्मिलित करने के बारे में कैसे जाउंगा? क्या माइक्रोसॉफ्ट एसक्यूएल सर्वर प्रबंधन स्टूडियो में कोई भी फ़ंक्शंस है जो फ़ाइलों के सम्मिलन को तालिकाओं में अनुमति देता है? यदि हां, तो यह कैसे किया जाता है? साथ ही, यह एचटीएमएल फॉर्म के उपयोग के माध्यम से इनपुट डेटा को संभालने और इसे टेबल में रखकर PHP के साथ कैसे किया जा सकता है?

  3. मैं तालिका से छवि कैसे प्राप्त करूं और इसे पृष्ठ पर प्रदर्शित करूं? मैं समझता हूं कि सेल की सामग्री कैसे चुनें, लेकिन मैं इसे एक तस्वीर में अनुवाद करने के बारे में कैसे जाउंगा। क्या मुझे हेडर होना चाहिए (सामग्री का प्रकार: छवि/जेपीईजी)?

मैं MySQL के साथ इन बातों में से किसी कर कोई समस्या नहीं है, लेकिन एसक्यूएल सर्वर वातावरण अभी भी मेरे लिए नया है, और मुझे लगता है कि विभिन्न हड़पने के लिए संग्रहित प्रक्रियाओं के उपयोग की आवश्यकता मेरा काम के लिए एक परियोजना पर काम कर रहा हूँ डेटा।

किसी भी और सभी मदद की सराहना की जाती है।

उत्तर

5

image प्रकार बहिष्कृत है, इसलिए इसका उपयोग न करें।

संक्षिप्त उत्तर FILESTREAM प्रकार का उपयोग करना है यदि यह SQL 2008 है, या varbinary(max) यदि यह 2005 या उससे पहले है।

बेहतर उत्तर FILESTREAM प्रकार का उपयोग करना है यदि यह SQL 2008 है, और अन्यथा डेटाबेस में छवियों को संग्रहीत नहीं करता है। डेटाबेस इस प्रकार की चीज़ के लिए नहीं बनाए गए हैं और वहां बीएलओबी फेंकने से प्रदर्शन में काफी नुकसान हो सकता है। FILESTREAM फ़ाइल सिस्टम पर वास्तविक डेटा संग्रहीत करके समस्या को हल करता है; बाकी सब कुछ एक उप-मानक समाधान है।

यदि आप इस गैर-आदर्श दृष्टिकोण को चुनना चुनते हैं तो varbinary कॉलम को पढ़ने और लिखने के तरीके के रूप में, इसे PHP में स्ट्रीम के रूप में प्रदर्शित किया जा रहा है। कॉलम मान के रूप में आप एक क्वेरी से बाहर निकलते हैं, और मेरा मानना ​​है कि आपको पैरामीटर के रूप में रखना होगा।

+0

हम SQL Server 2008 का उपयोग कर रहे हैं, लेकिन ड्रॉप-डाउन सूची में 'FILESTREAM' प्रकार प्रतीत नहीं होता है। यदि 'varbinary' काम करता है, तो उसे करना होगा। मुख्य चिंता तालिका में छवि को सम्मिलित करने का एक तरीका ढूंढ रही है। यह ध्यान देने के लिए धन्यवाद कि छवि प्रकार को बहिष्कृत किया गया है, क्योंकि मैं उस मार्ग की तरफ झुका रहा था।:) –

+0

@ जो मैजवेस्की: FILESTREAM SQL Server 2008 के सभी संस्करणों में उपलब्ध है। ** ** ** आपके पास FILESTREAM होने पर 'varbinary' का उपयोग करें। आपको इसे ड्रॉप-डाउन में जरूरी नहीं देखना चाहिए - कृपया यहां प्रारंभ करने की मार्गदर्शिका देखें: http://msdn.microsoft.com/en-us/library/bb933995.aspx – Aaronaught

+0

ठीक है, मैं उस अधिकार को देख रहा हूं अभी व। यह समझें कि मैं "असली" डेटाबेस की एक प्रति पर काम कर रहा हूं क्योंकि मेरे पास सभी डेटा तक पहुंचने के लिए विशेषाधिकार नहीं हैं, इसलिए मुझे उम्मीद है कि एक फिलस्ट्रीम सक्षम डेटाबेस बनाने से यह लाइव होने पर समस्याएं नहीं आती हैं। –

0

कमांड लाइन bcp.exe से स्वीकार्य थोक सम्मिलन उपयोग है। टी-एसक्यूएल के माध्यम से एमएस एसक्यूएल में बाइनरी डेटा डालने के तरीके के बारे में अधिक जानकारी के लिए this पढ़ें।

+0

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

+0

क्या कोई ऐसा डालने वाला है जो हार्ड डिस्क पर केवल एक पथ के साथ काम करता है? –

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