سؤال

كنت أقرأ مقالة مساعدة لبرنامج MS Excel حول ذاكرة التخزين المؤقت المحورية وأتساءل عما يقصدونه مصادر OLE DB وODBC

... يجب عليك استخدام خاصية CommandText بدلاً من خاصية SQL ، والتي توجد الآن في المقام الأول للتوافق مع الإصدارات السابقة من Microsoft Excel.إذا كنت تستخدم كلا الخصائين ، فإن قيمة خاصية CommandText لها الأسبقية.

ل مصادر OLE DB, ، تصف خاصية CommandType قيمة خاصية CommandText.

ل مصادر ODBC, ، تعمل خاصية CommandText تمامًا مثل خاصية SQL ، وتعيين الخاصية يؤدي إلى تحديث البيانات ...

أنا أقدر حقًا إجاباتك القصيرة.

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

المحلول

وفق اللغط:كائنات بيانات ActiveX, ، كتاب من تأليف جيسون ت.روف، نشرته شركة أورايلي ميديا ​​في عام 2001 (رسم تخطيطي ممتاز هنا)، فهو يقول بالضبط ما قالته موزيلا.

(مباشرة من الصفحة 7 من هذا الكتاب)

  • يوفر ODBC الوصول إلى قواعد البيانات العلائقية فقط
  • يوفر OLE DB الميزات التالية
    • الوصول إلى البيانات بغض النظر عن شكلها أو موقعها
    • الوصول الكامل إلى مصادر بيانات ODBC وبرامج تشغيل ODBC

لذلك يبدو أن OLE DB يتفاعل مع مصادر البيانات المستندة إلى SQL من خلال طبقة برنامج تشغيل ODBC.

alt text

لست متأكدًا بنسبة 100% من صحة هذه الصورة. الاتصالان اللذان لست متأكدًا منهما هما ADO.NET من خلال ADO C-api وOLE DB من خلال ODBC إلى مصدر البيانات المستند إلى SQL (لأنه في هذا المخطط لم يضع المؤلف وصول OLE DB عبر ODBC، وهو ما أعتقد أنه خطأ).

نصائح أخرى

ODBC: - فقط لقواعد البيانات العلائقية (Sql Server، Oracle، إلخ)

OLE DB: - لكل من قواعد البيانات العلائقية وغير العلائقية.(Oracle، Sql-Server، Excel، الملفات الأولية، إلخ)

هذا هو فهمي (غير موثوق):

يعد ODBC معيارًا مفتوحًا لا يعتمد على التكنولوجيا ويدعمه معظم موردي البرامج.OLEDB هو خاصة بالتكنولوجيا واجهة برمجة تطبيقات Microsoft من عصر COM (كان COM أحد المكونات وتقنية التشغيل التفاعلي قبل .NET)

في مرحلة ما، يقوم بائعو مصادر البيانات المختلفون (على سبيل المثال.Oracle وما إلى ذلك)، التي ترغب في أن تكون متوافقة مع مستهلكي بيانات Microsoft، قامت بتطوير موفري OLEDB لمنتجاتها، ولكن في معظم الأحيان يظل OLEDB معيارًا خاصًا بـ Microsoft فقط.الآن، معظم مايكروسوفت تسمح مصادر البيانات بالوصول إلى كل من ODBC وOLEDB، بشكل أساسي للتوافق مع مستهلكي بيانات ODBC القديمة.يوجد أيضًا موفر OLEDB (مجمّع) لـ ODBC والذي يسمح للشخص باستخدام OLEDB للوصول إلى مصادر بيانات ODBC إذا رغب في ذلك.

فيما يتعلق بالميزات، يعد OLEDB أكثر ثراءً إلى حد كبير من ODBC ولكنه يعاني من متلازمة "الحلقة الواحدة التي تحكم كل منهم" (عامة جدًا، ومعقدة بشكل مفرط، وغير معلنة).

في العالم غير التابع لشركة Microsoft، يتم استخدام موفري البيانات والعملاء المستندين إلى ODBC على نطاق واسع ولا يذهبون إلى أي مكان.

داخل فقاعة Microsoft، يتم التخلص التدريجي من OLEDB لصالح واجهات برمجة تطبيقات .NET الأصلية المبنية على أعلى طبقة النقل الأصلية لمصدر البيانات هذا (على سبيل المثال.TDS لخادم MS SQL).

ODBC وOLE DB هما تقنيتان متنافستان للوصول إلى البيانات.فيما يتعلق بـ SQL Server على وجه التحديد، قامت Microsoft بترويج كليهما باعتبارهما الاتجاه المستقبلي المفضل لديهما - ولكن في أوقات مختلفة.

أودبك

يعد ODBC واجهة قياسية على مستوى الصناعة للوصول إلى البيانات المشابهة للجدول.تم تطويره في المقام الأول لقواعد البيانات ويقدم البيانات في مجموعات من السجلات، يتم تجميع كل منها في مجموعة من الحقول.ولكل حقل نوع بيانات خاص به يتناسب مع نوع البيانات التي يحتوي عليها.يوفر كل بائع قاعدة بيانات (Microsoft، Oracle، Postgres، ...) برنامج تشغيل ODBC لقاعدة البيانات الخاصة به.

توجد أيضًا برامج تشغيل ODBC للكائنات، والتي، على الرغم من أنها ليست جداول قاعدة بيانات، متشابهة بدرجة كافية تجعل الوصول إلى البيانات بنفس الطريقة مفيدًا.ومن الأمثلة على ذلك جداول البيانات وملفات CSV والتقارير العمودية.

أولي ديسيبل

OLE DB هي إحدى تقنيات Microsoft للوصول إلى البيانات.على عكس ODBC، فإنه يشمل كلاً من البيانات المشابهة للجدول وغير المشابهة للجدول مثل رسائل البريد الإلكتروني وصفحات الويب ومستندات Word وأدلة الملفات.ومع ذلك، فهي موجهة نحو الإجراءات وليست موجهة نحو الكائنات، وتعتبر واجهة صعبة إلى حد ما يمكن من خلالها تطوير الوصول إلى مصادر البيانات.للتغلب على ذلك، تم تصميم ADO ليكون طبقة موجهة للكائنات فوق OLE DB ولتوفير طريقة أبسط وأعلى مستوى - رغم أنها لا تزال قوية جدًا - للعمل معها.الميزة الكبيرة لـ ADO هي أنه يمكنك استخدامه لمعالجة الخصائص الخاصة بنوع معين من مصادر البيانات، تمامًا كما يمكنك استخدامه للوصول إلى تلك الخصائص التي تنطبق على جميع أنواع مصادر البيانات.أنت لست مقيدًا ببعض القاسم المشترك الأدنى غير المرضي.

على الرغم من أن كافة قواعد البيانات تحتوي على برامج تشغيل ODBC، إلا أنها لا تحتوي جميعها على برامج تشغيل OLE DB.ومع ذلك، توجد واجهة متاحة بين OLE وODBC والتي يمكن استخدامها إذا كنت تريد الوصول إليها بطريقة تشبه OLE DB.تسمى هذه الواجهة MSDASQL (موفر Microsoft OLE DB لـ ODBC).

تقنيات الوصول إلى بيانات خادم SQL

نظرًا لأن SQL Server هو (1) من صنع Microsoft، و(2) ال منصة قاعدة بيانات Microsoft، كل من ODBC وOLE DB مناسبان لها بشكل طبيعي.

أودبك

نظرًا لأن جميع منصات قواعد البيانات الأخرى تحتوي على واجهات ODBC، فمن الواضح أنه كان على Microsoft توفير واحدة لـ SQL Server.بالإضافة إلى ذلك، تستخدم DAO، التقنية الافتراضية الأصلية في Microsoft Access، ODBC كطريقة قياسية للتحدث مع كافة مصادر البيانات الخارجية.هذا جعل واجهة ODBC شرطًا لا غنى عنه.لا يزال الإصدار 6 من برنامج تشغيل ODBC لـ SQL Server، والذي تم إصداره مع SQL Server 2000، موجودًا.تم إصدار إصدارات محدثة للتعامل مع أنواع البيانات الجديدة وتقنيات الاتصال والتشفير وHA/DR وما إلى ذلك.التي ظهرت مع الإصدارات اللاحقة.اعتبارًا من 09/07/2018، أحدث إصدار هو الإصدار v13.1 "برنامج تشغيل ODBC لـ SQL Server"، والذي تم إصداره بتاريخ 23/03/2018.

أولي ديسيبل

هذه هي تقنية Microsoft الخاصة، والتي كانوا يروجون لها بقوة منذ عام 2002 إلى عام 2005 تقريبًا، جنبًا إلى جنب مع طبقة ADO المصاحبة لها.ومن الواضح أنهم كانوا يأملون في أن تصبح تكنولوجيا الوصول إلى البيانات المفضلة.(حتى أنهم جعلوا ADO الطريقة الافتراضية للوصول إلى البيانات في Access 2002/2003.) ومع ذلك، أصبح من الواضح في النهاية أن هذا لن يحدث لعدد من الأسباب، مثل:

  1. لن يتحول العالم إلى Microsoft Technologies وبعيدًا عن ODBC ؛
  2. كان DAO/ODBC أسرع من ADO/OLE DB، كما تم دمجه تمامًا في MS Access، لذلك لم يكن من المفترض أن يموت موتًا طبيعيًا؛
  3. يمكن للتقنيات الجديدة التي تم تطويرها بواسطة Microsoft ، وخاصة ADO.NET ، التحدث مباشرة إلى ODBC.يمكن لـ ADO.NET التحدث مباشرة إلى OLE DB أيضًا (وبالتالي ترك ADO في المياه الخلفية) ، لكنه لم يكن (على عكس ADO) يعتمد عليه فقط.

لهذه الأسباب و اخرين, مايكروسوفت في الواقع تم إهمال OLE DB كتقنية للوصول إلى البيانات لإصدارات SQL Server بعد الإصدار 11 (SQL Server 2012).لبضع سنوات قبل هذه النقطة، كانوا يقومون بإنتاج وتحديث SQL Server Native Client، الذي يدعم كلاً من تقنيات ODBC وOLE DB.ومع ذلك، في أواخر عام 2012، أعلنوا أنهم سيتوافقون مع ODBC للوصول إلى البيانات العلائقية الأصلية في SQL Server، وشجعوا الجميع على فعل الشيء نفسه.وذكروا أيضًا أن إصدارات SQL Server بعد الإصدار 11/SQL Server 2012 ستكون نشطة لا دعم أولي ديسيبل!

وأثار هذا الإعلان عاصفة من الاحتجاجات.كان الناس في حيرة من أمرهم لفهم سبب إهمال مرض التصلب العصبي المتعدد فجأة للتكنولوجيا التي أمضوا سنوات في حثهم على الالتزام بها.بالإضافة إلى ذلك، كانت SSAS/SSRS وSSIS، والتي كانت عبارة عن تطبيقات مكتوبة بواسطة MS ومرتبطة بشكل وثيق بـ SQL Server، تعتمد كليًا أو جزئيًا على OLE DB.هناك شكوى أخرى وهي أن OLE DB كان لديه بعض الميزات المرغوبة والتي يبدو من المستحيل إعادتها إلى ODBC - ففي نهاية المطاف، كان لدى OLE DB العديد من النقاط الجيدة.

في أكتوبر 2017، رضخت مايكروسوفت ووافقت على ذلك OLE DB غير مهمل رسميًا.لقد أعلنوا عن الوصول الوشيك لبرنامج تشغيل جديد (MSOLEDBSQL) والذي سيحتوي على مجموعة الميزات الحالية لـ Native Client 11 وسيقدم أيضًا تجاوز فشل الشبكات الفرعية المتعددة ودعم TLS 1.2.تم إطلاق سراح السائق في مارس 2018.

على المستوى الأساسي للغاية، تكون هذه مجرد واجهات برمجة تطبيقات مختلفة لمصادر البيانات المختلفة (أي.قواعد بيانات).OLE DB هو الأحدث ويمكن القول إنه أفضل.

يمكنك قراءة المزيد عن كليهما في ويكيبيديا:

  1. أولي ديسيبل
  2. أودبك

أي.يمكنك الاتصال بنفس قاعدة البيانات باستخدام برنامج تشغيل ODBC أو برنامج تشغيل OLE DB.الفرق في سلوك قاعدة البيانات في تلك الحالات هو ما يشير إليه كتابك.

كلاهما موفري بيانات (واجهة برمجة التطبيقات (API) التي سيستخدمها الكود الخاص بك للتحدث مع مصدر البيانات).Oledb الذي تم تقديمه في عام 1998 كان من المفترض أن يكون بديلاً لـ ODBC (تم تقديمه في عام 1992)

لست متأكدًا من كل التفاصيل، ولكن ما أفهمه هو أن OLE DB وODBC هما واجهتا برمجة تطبيقات متاحتان للاتصال بأنواع مختلفة من قواعد البيانات دون الاضطرار إلى التعامل مع كافة تفاصيل التنفيذ المحددة لكل منهما.وفق مقالة ويكيبيديا على OLE DB, ، OLE DB هو خليفة Microsoft لـ ODBC، ويوفر بعض الميزات التي قد لا تتمكن من القيام بها باستخدام ODBC، مثل الوصول إلى جداول البيانات كمصادر لقاعدة البيانات.

في موقع Microsoft على الويب، يظهر أن موفر OLEDB الأصلي يتم تطبيقه على خادم SQL مباشرة وموفر OLEDB آخر يسمى موفر OLEDB لـ ODBC للوصول إلى قاعدة بيانات أخرى، مثل Sysbase وDB2 وما إلى ذلك.هناك أنواع مختلفة من المكونات ضمن موفر OLEDB.يرى الاستعلامات الموزعة على MSDN للمزيد من.

• أغسطس 2011:مايكروسوفت يستنكر أولي دي بي (تعمل Microsoft على التوافق مع ODBC للوصول إلى البيانات العلائقية الأصلية)

• أكتوبر 2017:مايكروسوفت ينتقص أولي دي بي (الإعلان عن الإصدار الجديد لبرنامج تشغيل OLE DB لـ SQL Server)

يعمل ODBC فقط مع قواعد البيانات العلائقية، ولا يمكنه العمل مع قواعد البيانات غير العلائقية مثل ملفات Ms Excel.حيث يستطيع Olebd أن يفعل كل شيء.

لمعرفة سبب قيام M$ باختراع OLEDB، لا يمكنك مقارنة OLEDB مع ODBC.بدلاً من ذلك، يجب مقارنة OLEDB مع DAO أو RDO أو ADO.هذا الأخير يعتمد إلى حد كبير على SQL.ومع ذلك، يعتمد OLEDB على COM.لكن ODBC موجود بالفعل منذ سنوات عديدة، لذا توجد جسور OLEDB-ODBC لمعالجة هذه المشكلة.أعتقد أن هناك صورة كبيرة عندما يخترع M $ OLEDB.

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