ما هو الحد الأدنى العميل البصمة المطلوبة للاتصال C# Oracle قاعدة البيانات ؟
سؤال
لقد نجحت في توصيل قاعدة بيانات أوراكل (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
- v10 :
- على 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 نسخة فقط
هنا هو نموذجي القدم الطباعة سوف تحتاج إلى حزمة مع الإصدار الخاص بك:
Oracle.ManagedDataAccess.dll
Oracle.ManagedDataAccessDTC.dll
كل ذلك معا ، ضخم 6.4 MB .Net 4.0.
أنا استخدم الأسلوب الذي اقترحه Pandicus أعلاه على ويندوز XP باستخدام ODAC 11.2.0.2.1.الخطوات هي كما يلي:
- تحميل "ODAC 11.2 الإصدار 3 (11.2.0.2.1) مع Xcopy نشر" حزمة من oracle.com (53 MB) ، واستخراج الرمز البريدي.
- جمع DLLs التالية:oci.dll (1 MB) ، oraociei11.dll (130 MB!), OraOps11w.dll (0.4 MB) ، Oracle.DataAccess.dll (1 MB).باقي الاشياء يمكن حذف شيء يجب أن تكون مثبتة.
- إضافة مرجع إلى Oracle.DataAccess.dll إضافة
using Oracle.DataAccess.Client;
إلى التعليمات البرمجية الخاصة بك ، الآن يمكنك استخدام أنواع مثلOracleConnection
,OracleCommand
وOracleDataReader
الوصول إلى قاعدة بيانات Oracle.ترى فئة الوثائق للحصول على التفاصيل.ليست هناك حاجة لاستخدام tnsnames.أورا ملف التكوين ، سلسلة الاتصال يجب أن يتم تعيين بشكل صحيح. - سبق 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
التكاثر:
إعداد متغيرات البيئة التالية:
- تأكد من عدم أخرى أوراكل الدليل هو في المسار الخاص بك
- تعيين الخاص بك المسار للإشارة إلى الفورية العميل
- تعيين الخاص بك TNS_ADMIN إلى نقطة حيث كنت tnsnames.أورا الملف يقع
- تعيين الخاص بك NLS_LANG
- تعيين الخاص بك ORACLE_HOME إلى لحظة العميل
بالنسبة لي, أنا وضعت NLS_LANG إلى
http://download-east.oracle.com/docs/html/A95493_01/gblsupp.htm#634282
أنا التحقق من ذلك باستخدام الصحيحة برنامج العميل باستخدام sqlplus إضافة إلى الفورية العميل.
بالنسبة لي, أنا وضعت:مجموعة NLS_LANG=AMERICAN_AMERICA.مجموعة أحرف we8mswin1252
ملاحظة:قبل إجراء أية تغييرات ، أوراكل مفتاح التسجيل (إن وجدت) و النسخ الاحتياطي سلسلة لأي متغيرات البيئة.