مصادر بيانات Windows ODBC و.Net System.Data.Odbc:أي سائق يستخدم؟

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

سؤال

أنا في حيرة بشأن كيفية الاتصال بـ Oracle عبر ODBC.

لقد قمت بإنشاء مصدر بيانات ODBC باسم "وحي" في لوحة التحكم > الأدوات الإدارية، واستخدم برنامج التشغيل "Microsoft ODBC for Oracle".

في ملفي app.config، لدي سلاسل الاتصال التالية

<?xml version="1.0"?>
<configuration>
  <configSections>
  </configSections>
  <connectionStrings>
    <add name="MappingAssistantGui2.Properties.Settings.maConnectionString"
      connectionString="Dsn=oracle;uid=ma;pwd=ma" providerName="System.Data.Odbc" />
    <add name="MappingAssistantGui2.Properties.Settings.maConnectionStringSqlServer"
      connectionString="Dsn=sqlserver;uid=sli;pwd=slislisli" providerName="System.Data.Odbc" />
    <add name="MappingAssistantGui2.Properties.Settings.maConnectionStringOracle"
      connectionString="Dsn=oracle;uid=ma;pwd=ma" providerName="System.Data.Odbc" />
  </connectionStrings>
  <startup>
    <supportedRuntime version="v2.0.50727" />
  </startup>
</configuration>

في الكود الخاص بي أستخدم سلسلة الاتصال maConnectionString (الأولى).أنا في حيرة من أمري بشأن برنامج التشغيل الذي يتم استخدامه تحته:

  1. مايكروسوفت ODBC لأوراكل
  2. System.Data.Odbc
  3. هل هذان هما نفس الشيء؟
  4. أم أن فئات System.Data.Odbc هي التي يمكنني من خلالها الوصول إلى برنامج التشغيل؟أعني، هل "Microsoft ODBC for Oracle" هو تطبيق للوصول إلى ODBC لـ Oracle، تم إنشاؤه بواسطة Microsoft؟
  5. شيء آخر؟

هل أنا يحتاج هل قمت بتحديد مصدر بيانات ODBC ليتم الاتصال بمساحة الاسم System.Data.Odbc بقاعدة بيانات (أيهما من Oracle أو SQL Server أو MySQL)؟

شكرًا!

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

المحلول

في التكوين الذي وصفته سوف تستخدمه كلاهما 'السائقين'.من الناحية الفنية، System.Data.Odbc ليس برنامج تشغيل، بل هو مزود.

لفهم ما يحدث، تحتاج إلى فصل الجانب المُدار (.Net) عن الجانب الأصلي (ODBC).يعد برنامج تشغيل Microsoft ODBC لـ Oracle برنامج تشغيل لـ ODBC.فهو يسمح لأي تطبيق قادر على ODBC بالاتصال بـ Oracle.ODBC هو محلي تكنولوجيا.ومن ناحية أخرى يستخدم Net Framwork تمكنت مزود البيانات للوصول إلى البيانات الخاصة به.أحد هؤلاء الموفرين هو موفر System.Data.Odbc الذي يسمح لتطبيقات .Net بالاتصال بأي مصدر بيانات ODBC.لذلك عندما يتصل تطبيقك المُدار بـ maConenctionString، فإنه يستخدم موفر System.Data.Odbc للاتصال بمصدر ODBC المسمى 'Oracle' وسيقوم مدير ODBC بتحميل برنامج تشغيل Microsoft ODBC لـ Oracle للاتصال بالنهاية الخلفية الفعلية.

الآن يقال ذلك فمن المستحسن استخدام مقدمي الخدمات الأصليين كلما أمكن ذلك.لذلك بدلاً من الاتصال عبر موفر ODBC بمصدر بيانات ODBC، يكون من الأفضل بكثير إذا كنت تستخدم الموفر الأصلي المعني مباشرةً مثل .Net المُدار لـ Oracle (للأطر القديمة) أو الأحدث System.Data.OracleClient.

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