ما هو الحد الأدنى العميل البصمة المطلوبة للاتصال C# Oracle قاعدة البيانات ؟

StackOverflow https://stackoverflow.com/questions/70602

  •  09-06-2019
  •  | 
  •  

سؤال

لقد نجحت في توصيل قاعدة بيانات أوراكل (10 غرام) من C# (Visual Studio 2008) تحميل و تثبيت عميل إدارة أدوات Visual Studio 2008 على جهاز الكمبيوتر المحمول.

تركيب البصمة أدوات عميل أوراكل كان على 200Mb و طويلة جدا ينضب.

لا أحد يعرف ما الدنيا عملي البصمة ؟ وأنا على أمل أنه واحد DLL و سجل الأوامر, ولكن لدي شعور أنني بحاجة إلى تثبيت oracle المنزل ، وتعيين مختلف متغيرات البيئة.

أنا باستخدام أوراكل.Access في قانون بلدي.

هل كانت مفيدة؟

المحلول

تحتاج Oracle العميل الاتصال إلى قاعدة بيانات Oracle.أسهل طريقة لتثبيت Oracle Data Access Components.

لتقليل البصمة, أقترح ما يلي :

  • استخدام موفر Microsoft Oracle (نظام.البيانات.OracleClient), الذي يأتي مع إطار.
  • تحميل Oracle Instant العميل حزمة - الأساسية لايت :هذا هو ملف مضغوط مع (تقريبا) الحد الأدنى.أوصي النسخة 10.2.0.4 التي هي أصغر بكثير من النسخة 11.1.0.6.0.
  • بفك الملفات التالية في مجلد معين :
    • v10 :
      • oci.dll
      • orannzsbb10.dll
      • oraociicus10.dll
    • v11 :
      • oci.dll
      • orannzsbb11.dll
      • oraociei11.dll
  • على x86 ، إضافة DLL CRT Visual Studio 2003 (msvcr71.dll) إلى هذا المجلد ، كما أوراكل شباب نسيت قراءة هذا...
  • إضافة هذا المجلد إلى مسار متغير البيئة.
  • استخدام من السهل الاتصال تسمية الأسلوب في التطبيق الخاص بك للتخلص من الشائنة TNSNAMES.أورا ملف التكوين.يبدو مثل هذا : sales-server:1521/sales.us.acme.com.

هذه المبالغ عن 19Mb (v10).

إذا كنت لا تهتم حول مشاركة هذا المجلد بين عدة تطبيقات بديلة أن السفينة المذكورة أعلاه DLLs جنبا إلى جنب مع التطبيق الخاص بك الثنائيات, و تخطي مسار الإعداد خطوة.

إذا كنت في حاجة على الإطلاق لاستخدام أوراكل مزود (أوراكل.Access), سوف تحتاج إلى :

  • بدالات استنفاد الأوزون .صافي 11.1.0.6.20 (النسخة الأولى التي يزعم أنها تعمل مع العميل الفورية).
  • الفورية العميل 11.1.0.6.0 الواضح.

علما أنه لم يتم اختبار هذا أحدث التكوين...

نصائح أخرى

اعتبارا من عام 2014 ، OPD.NET ، تمكن السائق هو أصغر البصمة.

هنا هو رمز الاستخدام مقارنة غير المدارة إصدارات سابقة (قديمة) الأجوبة المقترحة:http://docs.oracle.com/cd/E51173_01/win.122/e17732/intro005.htm#ODPNT148

سوف تحتاج إلى تحميل dll هذه المرجعية Oracle.ManagedDataAccess.dll في المشروع الخاص بك:تحميل ODP.NET ، تمكن سائق Xcopy نسخة فقط

هنا هو نموذجي القدم الطباعة سوف تحتاج إلى حزمة مع الإصدار الخاص بك:

  1. Oracle.ManagedDataAccess.dll
  2. Oracle.ManagedDataAccessDTC.dll

كل ذلك معا ، ضخم 6.4 MB .Net 4.0.

أنا استخدم الأسلوب الذي اقترحه Pandicus أعلاه على ويندوز XP باستخدام ODAC 11.2.0.2.1.الخطوات هي كما يلي:

  1. تحميل "ODAC 11.2 الإصدار 3 (11.2.0.2.1) مع Xcopy نشر" حزمة من oracle.com (53 MB) ، واستخراج الرمز البريدي.
  2. جمع DLLs التالية:oci.dll (1 MB) ، oraociei11.dll (130 MB!), OraOps11w.dll (0.4 MB) ، Oracle.DataAccess.dll (1 MB).باقي الاشياء يمكن حذف شيء يجب أن تكون مثبتة.
  3. إضافة مرجع إلى Oracle.DataAccess.dll إضافة using Oracle.DataAccess.Client; إلى التعليمات البرمجية الخاصة بك ، الآن يمكنك استخدام أنواع مثل OracleConnection, OracleCommand و OracleDataReader الوصول إلى قاعدة بيانات Oracle.ترى فئة الوثائق للحصول على التفاصيل.ليست هناك حاجة لاستخدام tnsnames.أورا ملف التكوين ، سلسلة الاتصال يجب أن يتم تعيين بشكل صحيح.
  4. سبق 4 DLLs يجب أن تنشر على طول مع القابلة للتنفيذ الخاص بك.

هذه الطريقة تتيح لك الاتصال مع ODP.net باستخدام 5 الملفات القابلة لإعادة التوزيع من أوراكل:

كريس دخول بلوق:استخدام جديدة ODP.Net للوصول إلى أوراكل من C# مع بسيطة النشر

تحرير:في حالة بلوق كل يذهب إلى أسفل ، هنا هو ملخص...

  • oci.dll
  • Oracle.DataAccess.dll
  • oraociicus11.dll
  • OraOps11w.dll
  • orannzsbb11.dll
  • oraocci11.dll
  • ociw32.dll

تأكد من الحصول على كل تلك DLL من نفس ODP.Net / ODAC توزيع لتجنب إصدار عدد النزاعات ووضع كل منهم في نفس المجلد مثل EXE الخاص بك

DevArt http://www.devart.com/, سابقا CoreLab (crlab.com) لوازم pure-C# عميل أوراكل.هذا هو واحد dll و أنه يعمل بشكل جيد.

هنا هو تحديث أوراكل 11.2.0.4.0.لقد كان النجاح مع الإجراء التالي على ويندوز 7 باستخدام System.Data.OracleClient.

1. تحميل الفورية العميل حزمة الأساسية لايت: ويندوز 32 بت أو 64 بت.

2. نسخ الملفات التالية إلى موقع في مسار النظام الخاص بك:

32 بت

 1,036,288  2013-10-11  oci.dll
   348,160  2013-10-11  ociw32.dll
 1,290,240  2013-09-21  orannzsbb11.dll
   562,688  2013-10-11  oraocci11.dll
36,286,464  2013-10-11  oraociicus11.dll

64 بت

   691,712  2013-10-09  oci.dll
   482,304  2013-10-09  ociw32.dll
 1,603,072  2013-09-10  orannzsbb11.dll
 1,235,456  2013-10-09  oraocci11.dll
45,935,104  2013-10-09  oraociicus11.dll

3. إنشاء سلسلة اتصال يغفل الحاجة tnsnames.أورا.

(انظر الأمثلة في اختبار البرنامج أدناه.)

4. تشغيل هذا الحد الأدنى C# برنامج لاختبار التثبيت الخاص بك:

using System;
using System.Data;
using System.Data.OracleClient;

class TestOracleInstantClient
{
    static public void Main(string[] args)
    {
        const string host = "yourhost.yourdomain.com";
        const string serviceName = "yourservice.yourdomain.com";
        const string userId = "foo";
        const string password = "bar";

        var conn = new OracleConnection();

        // Construct a connection string using Method 1 or 2.
        conn.ConnectionString =
            GetConnectionStringMethod1(host, serviceName, userId, password);

        try
        {
            conn.Open();
            Console.WriteLine("Connection succeeded.");
            // Do something with the connection.
            conn.Close();
        }
        catch (Exception e)
        {
            Console.WriteLine("Connection failed: " + e.Message);
        }
    }

    static private string GetConnectionStringMethod1(
        string host,
        string serviceName,
        string userId,
        string password
        )
    {
        string format =
            "SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)" +
            "(HOST={0})(PORT=1521))" +
            "(CONNECT_DATA=(SERVER=DEDICATED)" +
            "(SERVICE_NAME={1})));" +
            "uid={2};" +
            "pwd={3};"; // assumes port is 1521 (the default)

        return String.Format(format, host, serviceName, userId, password);
    }

    static private string GetConnectionStringMethod2(
        string host,
        string serviceName,
        string userId,
        string password
        )
    {
        string format =
            "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)" +
            "(HOST={0})(PORT=1521))" +
            "(CONNECT_DATA=(SERVER=DEDICATED)" +
            "(SERVICE_NAME={1})));" +
            "User Id={2};" +
            "Password={3};"; // assumes port is 1521 (the default)

        return String.Format(format, host, serviceName, userId, password);
    }
}

نصيحة أخيرة: إذا كنت تواجه خطأ "النظام.البيانات.OracleClient يتطلب برنامج عميل أوراكل النسخة 8.1.7", انظر هذا السؤال.

ODAC xcopy سوف تحصل بعيدا عن 45MB.http://www.oracle.com/technology/software/tech/windows/odpnet/index.html

لقد وجدت هذا المنصب على أوراكل المنتدى مفيدة جدا وكذلك:

كيفية إعداد Oracle Instant العميل مع Visual Studio

ملاحظة:على ADO.NET فريق الاستنكار النظام.البيانات.OracleClient حتى للمشاريع المستقبلية يجب عليك استخدام ODP.NET

التكاثر:

إعداد متغيرات البيئة التالية:

  1. تأكد من عدم أخرى أوراكل الدليل هو في المسار الخاص بك
  2. تعيين الخاص بك المسار للإشارة إلى الفورية العميل
  3. تعيين الخاص بك TNS_ADMIN إلى نقطة حيث كنت tnsnames.أورا الملف يقع
  4. تعيين الخاص بك NLS_LANG
  5. تعيين الخاص بك ORACLE_HOME إلى لحظة العميل

بالنسبة لي, أنا وضعت NLS_LANG إلى

http://download-east.oracle.com/docs/html/A95493_01/gblsupp.htm#634282

أنا التحقق من ذلك باستخدام الصحيحة برنامج العميل باستخدام sqlplus إضافة إلى الفورية العميل.

بالنسبة لي, أنا وضعت:مجموعة NLS_LANG=AMERICAN_AMERICA.مجموعة أحرف we8mswin1252

ملاحظة:قبل إجراء أية تغييرات ، أوراكل مفتاح التسجيل (إن وجدت) و النسخ الاحتياطي سلسلة لأي متغيرات البيئة.

قراءة Oracle Instant العميل الأسئلة الشائعة هنا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top