2011-11-14 14 views
22

पर कैसे इंगित करूं मेरे पास क्रिस्टल रिपोर्ट 2008 उपयोगकर्ता है जिसमें 100 से अधिक कस्टम विकसित रिपोर्ट हैं। रिपोर्ट सभी क्वेरी एसक्यूएल सर्वर डेटाबेस (एसक्यूएल 2005)।
यह डेटाबेस सर्वर एक नई प्रणाली (SQL 2008 R2 चला रहा है) के साथ प्रतिस्थापित हो रहा है और मौजूदा डेटाबेस नए सर्वर पर ले जाया जाएगा। नए डेटाबेस सर्वर का एक अलग नाम होगा (जिसे मैं क्रिस्टल रिपोर्ट कनेक्शन के माध्यम से संबोधित कर सकता हूं), हालांकि, एक ही समय में अनुप्रयोगों में से एक को अपग्रेड किया जा रहा है। पुराने डेटाबेस (डीबी_ए) को ऐतिहासिक रिपोर्टिंग के लिए नए सर्वर पर पुनर्स्थापित किया जाएगा और एक नया डेटाबेस (डीबीबी) बनाया जाएगा। नई डीबीबीआई की एक बहुत ही समान स्कीमा होगी, इसलिए मैं उम्मीद करता हूं कि अधिकांश क्रिस्टल रिपोर्ट नए डीबीबी के साथ नई डीबीबी में रिपोर्ट परिभाषा को इंगित करने के अलावा छोटे या कोई संशोधन के साथ चलाने में सक्षम होना चाहिए।मैं क्रिस्टल रिपोर्ट्स को एक नए डेटाबेस

बेशक, मेरे अधिकांश उपयोगकर्ताओं ने कस्टम डीबी_ए के खिलाफ रिपोर्ट विकसित की है।

मेरा प्रश्न है: मैं पुराने क्रिस्टल रिपोर्ट फ़ाइलों को पुराने डेटाबेस (डीबी_ए) के बजाय नए डेटाबेस नाम (डीबीबी) पर इंगित करने के लिए कैसे संशोधित करूं?

+0

उत्तर वास्तव में एक अलग नाम का उपयोग कर नए डेटाबेस में पूर्व डेटाबेस में बहाल करना चाहिए था। फिर नए डेटाबेस को उसी डेटाबेस का उपयोग करना चाहिए था जो सभी रिपोर्ट्स का उपयोग कर रहे थे। यदि स्कीमा अलग-अलग हैं, तो आपको केवल उन रिपोर्टों को संपादित करने की आवश्यकता होगी जहां स्कीमा अलग है, लेकिन डेटास्रोत स्थान नहीं। – Sun

उत्तर

4

डेटाबेस चुनें। डेटास्रोत स्थान सेट करें ... वर्तमान कनेक्शन के डेटाबेस नोड (पीले-आइश सिलेंडर) का चयन करें, फिर वांछित कनेक्शन के डेटाबेस नोड का चयन करें (आपको प्रमाणीकरण करने की आवश्यकता हो सकती है), फिर अद्यतन पर क्लिक करें।

आपको 'सब्रेपोर्ट्स नोड्स' के लिए भी ऐसा करने की आवश्यकता होगी।

एफवाईआई, आप प्रत्येक व्यक्तिगत रूप से चयन करके व्यक्तिगत तालिकाएं भी कर सकते हैं, फिर अद्यतन चुन सकते हैं।

+1

बस यह कोशिश की, रिपोर्ट अभी भी डीबी_ए से पूछताछ कर रही है। साथ ही, जब मैं डेटाबेस मेनू से "SQL क्वेरी दिखाएं" का चयन करता हूं और यह दिखाता है "चयन कोल 1, [2 डीबीए] से col2। [Dbo]। [तालिका]"। मुझे इसके लिए क्या करना है "चयन कोल 1, [2 बीबीबी] से कॉल 2। [डीबीओ]। [तालिका]" – JSR

+0

क्या आप मूल ड्राइवर, ओडीबीसी, या ओएलडीडीबी का उपयोग कर रहे हैं? – craig

+0

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

44

किसी रिपोर्ट में प्रत्येक तालिका का नाम या स्थान बदलने के लिए डेटाबेस मेनू और "डेटासेट स्थान सेट करें" मेनू विकल्प का उपयोग करें।

यह डेटाबेस के स्थान को बदलने, नए डेटाबेस में बदलने, और आपकी रिपोर्ट में इस्तेमाल होने वाली किसी व्यक्तिगत तालिका का स्थान या नाम बदलने के लिए काम करता है।

डेटास्रोत कनेक्शन बदलने के लिए, डेटाबेस मेनू पर जाएं और डेटासेट स्थान सेट करें पर क्लिक करें।

  1. बदलें डेटा स्रोत कनेक्शन:
    1. वर्तमान डेटा स्रोत सूची (टॉप बॉक्स) से, डेटा स्रोत कनेक्शन है कि आप बदलना चाहते हैं पर एक बार क्लिक करें।
    2. सूची के साथ बदलें (नीचे बॉक्स), नए डेटासॉर कनेक्शन पर एक बार क्लिक करें।
    3. अपडेट पर क्लिक करें।
  2. व्यक्तिगत बदलें टेबल्स:
      वर्तमान डेटा स्रोत सूची (टॉप बॉक्स) से
    1. , डेटा स्रोत कनेक्शन है कि आप बदलना चाहते हैं का विस्तार करें।
    2. वह तालिका खोजें जिसके लिए आप स्थान या नाम अपडेट करना चाहते हैं।
    3. सूची (नीचे बॉक्स) के साथ प्रतिस्थापन में, नए डेटास्रोत कनेक्शन का विस्तार करें।
    4. उस नई तालिका को ढूंढें जिसे आप इंगित करना चाहते हैं।
    5. अपडेट पर क्लिक करें।
    6. ध्यान दें कि यदि तालिका का नाम बदल गया है, तो पुराने तालिका का नाम अभी भी फ़ील्ड एक्सप्लोरर में दिखाई देगा, भले ही यह अब नई तालिका का उपयोग कर रहा हो।(आप यह पुष्टि कर सकते हैं कि सेट डेटास्रोत स्थान में वर्तमान डेटा स्रोत में तालिका के गुणों के तालिका नाम को देख रहे हैं। स्क्रीनशॉट http://i.imgur.com/gzGYVTZ.png) डाटाबेस विशेषज्ञ में संदर्भ मेनू से पुराने नाम का नाम बदलना संभव है -> चयनित टेबल्स ।
  3. subreports बदलें:
    1. दोहराएं subreports आप अपनी रिपोर्ट में एम्बेडेड हो सकता है के लिए ऊपर दिए गए चरणों में से प्रत्येक।
    2. सेट डेटास्रोत स्थान विंडो बंद करें।
  4. किसी भी आदेश या SQL भाव:
    1. डाटाबेस मेनू पर जाएँ और क्लिक डाटाबेस विशेषज्ञ।
    2. यदि रिपोर्ट डिज़ाइनर कस्टम एसक्यूएल लिखने के लिए "कमांड जोड़ें" का उपयोग करता है तो इसे दाईं ओर चयनित टेबल्स बॉक्स में दिखाया जाएगा।
    3. उस आदेश पर राइट क्लिक करें और "कमांड संपादित करें" चुनें।
    4. जांचें कि क्या SQL एक विशिष्ट डेटाबेस निर्दिष्ट कर रहा है या नहीं। यदि ऐसा है तो आपको इसे बदलने की आवश्यकता हो सकती है।
    5. डाटाबेस विशेषज्ञ विंडो बंद करें।
    6. दाईं ओर फ़ील्ड एक्सप्लोरर फलक में, किसी भी SQL अभिव्यक्ति पर राइट क्लिक करें।
    7. जांचें कि SQL अभिव्यक्तियां एक विशिष्ट डेटाबेस निर्दिष्ट कर रही हैं या नहीं। यदि ऐसा है तो आपको इसे भी बदलने की आवश्यकता हो सकती है।
    8. संपादन पूर्ण होने पर अपनी फ़ॉर्मूला संपादक विंडो को सहेजें और बंद करें।

और रिपोर्ट को पुनः चलाने का प्रयास करें।

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

इसे और अधिक सुविधाजनक बनाने के लिए, यहां एक युक्ति है: आप डेटाबेस मेनू में "SQL क्वेरी दिखाएं" कर सकते हैं, और आपको डेटाबेस के साथ योग्य तालिका नाम (जैसे "बिक्री"। "डीबीओ" दिखाई देंगे। "ग्राहक") किसी भी टेबल के लिए जो सीधे एक विशिष्ट डेटाबेस पर जाते हैं। यदि आपके पास बहुत सी चीजें चल रही हैं तो इससे शिकार आसान हो सकता है। जब मैंने इस समस्या का सामना किया तो मुझे नए डेटाबेस में नई तालिका को इंगित करने के लिए प्रत्येक तालिका को बदलना पड़ा।

+0

+1। आपने मुझे काम के घंटे बचाए! –

+0

लेकिन यदि आप ऐसा करते हैं, तो सभी नए डेटासोर्स फ़ील्ड स्ट्रिंग प्रारूप –

+0

में होंगे यदि आप विजुअल स्टूडियो में काम कर रहे हैं, तो ऐसा करने के बाद, आप विजुअल स्टूडियो को सहेजना, बंद करना और फिर से खोलना चाहते हैं। मैंने इस अद्यतन को करने के 20 मिनट बाद वीएस -2010 क्रैश किया था (जो शुरू में बहुत अच्छा काम करता था) .. लेकिन जब यह दुर्घटनाग्रस्त हो गया .... मुझे "निम्न त्रुटि के कारण डेटासेट लोड करने में विफल रहा: ऑब्जेक्ट संदर्भ किसी उदाहरण के लिए सेट नहीं है एक वस्तु।" शायद इससे कोई संबंध नहीं हो सकता ... लेकिन यह कुछ दर्द बचा सकता है ... मैंने वीएस को स्वचालित रूप से पहली बार फिर से खोलने की इजाजत दी ... शायद कोई अच्छा विचार नहीं है ... मैं वीएस को बंद करने से बेहतर हो सकता था और मैन्युअल रूप से फिर से खोलना ... –