2009-08-09 14 views
16

का उपयोग करते समय ओरेकल क्लाइंट त्रुटि के संस्करण के साथ संगत नहीं है, मैं विजुअल स्टूडियो 2008 एक्सप्रेस संस्करण का उपयोग कर रहा हूं, और मैं Oracle.DataClient का उपयोग करके एक छोटे से एप्लिकेशन को विकसित करने में अपना हाथ कोशिश कर रहा हूं। लक्ष्य प्रणाली में डेटाबेस से कनेक्ट करने का प्रयास करते समय मुझे ऊपर उल्लिखित त्रुटि मिल रही है।प्रदाता Oracle.DataClient

मैंने ओरेकल 10 जीआर 2 के लिए ओरेकल ओडीपीनेट प्रदाता का संदर्भ जोड़ा है, और लक्ष्य मशीन में मेरे पास ओरेकल 10 जीआर 2 डेटाबेस की एक प्रति स्थापित है। इसके बावजूद, मुझे त्रुटि मिल रही है। इसे पोस्ट करने से पहले, मैंने SO पर this post पढ़ा, और मैंने तत्काल क्लाइंट स्थापित किया है, त्रुटि बनी रहती है। नीचे पूर्ण त्रुटि ढेर है।

************** Exception Text ************** 
System.TypeInitializationException: The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception. ---> Oracle.DataAccess.Client.OracleException The provider is not compatible with the version of Oracle client at Oracle.DataAccess.Client.OracleInit.Initialize() 
    at Oracle.DataAccess.Client.OracleConnection..cctor() 
    --- End of inner exception stack trace --- 
    at Oracle.DataAccess.Client.OracleConnection..ctor(String connectionString) 
    at Employees1.frmLogin.oralogin() 
    at Employees1.frmLogin.btnTest_Click(Object sender, EventArgs e) 
    at System.Windows.Forms.Control.OnClick(EventArgs e) 
    at System.Windows.Forms.Button.OnClick(EventArgs e) 
    at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) 
    at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) 
    at System.Windows.Forms.Control.WndProc(Message& m) 
    at System.Windows.Forms.ButtonBase.WndProc(Message& m) 
    at System.Windows.Forms.Button.WndProc(Message& m) 
    at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 
    at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 


************** Loaded Assemblies ************** 
mscorlib 
    Assembly Version: 2.0.0.0 
    Win32 Version: 2.0.50727.42 (RTM.050727-4200) 
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll 
---------------------------------------- 
API Data Conversion Assistant 
    Assembly Version: 0.0.0.1 
    Win32 Version: 0.0.0.1 
    CodeBase: file:///C:/Documents%20and%20Settings/3i/My%20Documents/My%20Dropbox/Sathya's%20dropbox/VisualStudio%20Releases/APIDataconversion/Application%20Files/API%20Data%20Conversion%20Assistant_0_0_0_3/API%20Data%20Conversion%20Assistant.exe 
---------------------------------------- 
System.Windows.Forms 
    Assembly Version: 2.0.0.0 
    Win32 Version: 2.0.50727.42 (RTM.050727-4200) 
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll 
---------------------------------------- 
System 
    Assembly Version: 2.0.0.0 
    Win32 Version: 2.0.50727.42 (RTM.050727-4200) 
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll 
---------------------------------------- 
System.Drawing 
    Assembly Version: 2.0.0.0 
    Win32 Version: 2.0.50727.42 (RTM.050727-4200) 
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll 
---------------------------------------- 
Oracle.DataAccess 
    Assembly Version: 2.102.2.20 
    Win32 Version: 2.102.2.20 

मैं Oracle 11g मशीन है जिस पर मैं आवेदन विकसित पर स्थापित है, और यह वहाँ ठीक काम करता है, लेकिन लक्षित मशीन पर, मैं इस त्रुटि हो रही है। किसी भी इनपुट की सराहना की जाएगी।

पीएस: जैसा ऊपर बताया गया है, संदर्भित Oracle.DataClient.dll फ़ाइल संस्करण 10 जीआर 2 के अनुरूप है, 11 जी नहीं।

+3

('ociw32.dll.dbl' से नाम बदला) यह होगा अच्छा अगर लोग जो एक प्रश्न कम करते हैं तो उनके कारण (ओं) को एक टिप्पणी में प्रदान करेंगे ... – DCookie

+1

मुझे लगता है कि यह एक अच्छा सवाल है, क्योंकि मैंने एक ही समस्या के साथ पूरी सुबह संघर्ष किया था। – Chris

उत्तर

17

मैं आगे इस समस्या को ध्यान दे रहा है, और आप बस ODP.Net का एक ही डाउनलोड किए गए संस्करण से सभी उपयुक्त DLL के आकर्षित करने और उन्हें अपने Exe फ़ाइल को उसी फ़ोल्डर में डाल करने के लिए की जरूरत है, क्योंकि ODP.Net संस्करण संख्याओं को मिश्रण न करने के बारे में चिंतित है, जो समस्या आप देख रहे हैं (या तो वह या oci.dll पूरी तरह गायब है, इस मामले में यह परेशानी से एक ही त्रुटि देता है)।

मैं समझाया है कि कैसे यहाँ यह करने के लिए:

  • डाउनलोड http://www.oracle.com/technology/software/tech/windows/odpnet/index1110710beta.html
  • खोल दो फ़ाइल
  • खोल दो सब जार के दशक में यह
  • ले लो: http://splinter.com.au/using-the-new-odpnet-to-access-oracle-from-c यहाँ यह का सार है, हालांकि है इन डीएलएस को केवल अनजिप किया गया था: oci.dll ('oci.dll.dbl' से नामित) ओरेकल.डाटाएसेफ.dll oraociicus11.dll,210 OraOps11w.dll orannzsbb11.dll oraocci11.dll ociw32.dll
  • के रूप में अपने सी # रखो एक ही फ़ोल्डर में सभी DLLs निष्पादन
+0

निर्देशों के लिए बहुत बहुत धन्यवाद, यह एक आकर्षण की तरह काम किया! एक ही समस्या वाले अन्य लोगों के लिए: [सबसे हालिया संस्करण] (http://download.oracle.com/otn/nt/instantclient/112020/instantclient-basic-nt-11.2.0.2.0.zip) में सीधे डीएलएल शामिल हैं । –

1

क्या आपने अपने क्लाइंट सिस्टम पर ओडीबीसी प्रशासक का उपयोग कर कनेक्शन बनाया है और सफलतापूर्वक परीक्षण किया है?

9i और 10g क्लाइंट में अनुमतियों के लिए एक पैच आउट है जिसके परिणामस्वरूप यह त्रुटि होती है। यदि आप 10.2.0.1 पर हैं, तो आपको इसे हल करने के लिए 10.2.0.3 तक अपग्रेड करना पड़ सकता है।

+0

@dcookie: हाँ ओडीबीसी कनेक्शन सफल है, क्योंकि मेरा एसपी एक एमएस एसक्यूएल सर्वर से ओरेकल टेबल में डेटा पुनर्प्राप्त करता है। – Sathya

0

ठीक है मैंने अपना ऐप ओले डीबी (System.Data.Oledb नामस्थान) कनेक्शन का उपयोग किया है, और यह ठीक काम करता है। यह मानते हुए कि ऐप ओरेकल एसपी को कॉल करने के लिए सिर्फ एक फ्रंट एंड है, और कोई मूल्य वापस नहीं किया जा रहा है, मुझे लगता है कि यह दृष्टिकोण स्वीकार्य है, क्योंकि 2 दिनों में मैंने इस समस्या का समाधान करने की कोशिश की, मैं बहुत कुछ पूरा कर सकता था ऐप पर अधिक विकास। मैं अभी भी जवाब देने के लिए खुला हूं, क्योंकि मैं भविष्य में ऐसे किसी भी अनुप्रयोग के लिए क्या गलती कर रहा हूं, उससे सीख सकता हूं।

0

मैं एक ही समस्या में भाग गया। अगर आपके पास 11 जी क्लाइंट आपकी मशीन पर स्थापित है, तो आपको 11 जी ओडीपी.Net DLL का उपयोग करने की आवश्यकता है। मुझे सबकुछ पूरी तरह से अनइंस्टॉल करना था, और उसके बाद 11 जी क्लाइंट, और उसके बाद 11 जी ODP.NET ड्राइवर स्थापित करना था। चालक जीएसी में स्थापित हो जाते हैं और यह दर्द होता है।

* नोट, यह मेरी डीबीए से मेरी समझ है कि अगर आप यह केवल काम करता है किसी भी संस्करण 9i से कम *

हम भी हमारे सर्वर पर यह करने के लिए किया था से कनेक्ट करने की जरूरत नहीं है है।

HTH

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