ODBC และ OLE DB เป็นเทคโนโลยีการเข้าถึงข้อมูลที่แข่งขันกันสองแบบ เกี่ยวกับ SQL Server โดยเฉพาะ Microsoft ได้เลื่อนตำแหน่งทั้งสองเป็นทิศทางในอนาคตที่ต้องการ - แม้ว่าจะต่างเวลากัน
ODBC
ODBC เป็นอินเทอร์เฟซมาตรฐานทั่วทั้งอุตสาหกรรมสำหรับการเข้าถึงข้อมูลแบบตาราง มันได้รับการพัฒนาเป็นหลักสำหรับฐานข้อมูลและนำเสนอข้อมูลในคอลเลกชันของระเบียนแต่ละแห่งจะถูกจัดกลุ่มเป็นชุดของเขต แต่ละฟิลด์มีชนิดข้อมูลของตัวเองที่เหมาะสมกับประเภทของข้อมูลที่มี ผู้จำหน่ายฐานข้อมูลแต่ละราย (Microsoft, Oracle, Postgres, …) จะจัดหาไดรเวอร์ ODBC สำหรับฐานข้อมูลของพวกเขา
นอกจากนี้ยังมีไดรเวอร์ ODBC สำหรับวัตถุซึ่งแม้ว่าจะไม่ใช่ตารางฐานข้อมูลก็มีความคล้ายคลึงกันพอสมควรว่าการเข้าถึงข้อมูลในลักษณะเดียวกันมีประโยชน์ ตัวอย่างคือสเปรดชีตไฟล์ CSV และรายงานเรียงเป็นแนว
OLE DB
OLE DB เป็นเทคโนโลยีของ Microsoft สำหรับการเข้าถึงข้อมูล ซึ่งแตกต่างจาก ODBC มันครอบคลุมทั้งข้อมูลที่เหมือนตารางและไม่เหมือนตารางเช่นข้อความอีเมลหน้าเว็บเอกสาร Word และไดเรกทอรีไฟล์ อย่างไรก็ตามมันเป็นโพรซีเดอร์ที่มุ่งเน้นมากกว่าเชิงวัตถุและถือเป็นอินเทอร์เฟซที่ค่อนข้างยากที่จะพัฒนาการเข้าถึงแหล่งข้อมูล เพื่อเอาชนะสิ่งนี้ ADO ได้รับการออกแบบให้เป็นเลเยอร์เชิงวัตถุที่อยู่ด้านบนของ OLE DB และเพื่อให้ง่ายขึ้นและระดับที่สูงขึ้น - แม้ว่าจะยังทรงพลังมาก - วิธีการทำงานกับมัน ประโยชน์ที่ดีเยี่ยมของ ADO คือคุณสามารถใช้มันเพื่อจัดการคุณสมบัติที่เฉพาะเจาะจงกับแหล่งข้อมูลประเภทที่กำหนดเช่นเดียวกับที่คุณสามารถใช้เพื่อเข้าถึงคุณสมบัติเหล่านั้นซึ่งใช้กับแหล่งข้อมูลทุกประเภท คุณไม่ได้ถูก จำกัด ให้ใช้ตัวหารร่วมที่ต่ำที่สุดที่ไม่น่าพึงพอใจ
ในขณะที่ฐานข้อมูลทั้งหมดมีโปรแกรมควบคุม ODBC แต่ฐานข้อมูลทั้งหมดไม่มีไดรเวอร์ OLE DB อย่างไรก็ตามมีอินเทอร์เฟซที่พร้อมใช้งานระหว่าง OLE และ ODBC ซึ่งสามารถใช้ถ้าคุณต้องการเข้าถึงพวกเขาในลักษณะคล้าย OLE DB อินเทอร์เฟซนี้เรียกว่า MSDASQL (ผู้ให้บริการ Microsoft OLE DB สำหรับ ODBC)
เทคโนโลยีการเข้าถึงข้อมูล SQL Server
ตั้งแต่ SQL Server คือ (1) ทำโดยไมโครซอฟท์และ (2) แพลตฟอร์มฐานข้อมูล Microsoft ทั้ง ODBC และ OLE DB เป็นแบบธรรมชาติสำหรับมัน
ODBC
เนื่องจากแพลตฟอร์มฐานข้อมูลอื่น ๆ ทั้งหมดมีอินเทอร์เฟซ ODBC ไมโครซอฟท์จึงต้องจัดเตรียมหนึ่งสำหรับ SQL Server นอกจากนี้ DAO ซึ่งเป็นเทคโนโลยีเริ่มต้นดั้งเดิมใน Microsoft Access ยังใช้ ODBC เป็นวิธีมาตรฐานในการพูดคุยกับแหล่งข้อมูลภายนอกทั้งหมด สิ่งนี้ทำให้อินเตอร์เฟส ODBC เป็น sine qua non ไดรเวอร์ ODBC รุ่น 6 สำหรับ SQL Server ซึ่งวางจำหน่ายพร้อม SQL Server 2000 ยังคงอยู่ รุ่นที่อัปเดตได้รับการเผยแพร่เพื่อจัดการกับชนิดข้อมูลใหม่เทคโนโลยีการเชื่อมต่อการเข้ารหัส HA / DR ฯลฯ ที่ปรากฏขึ้นพร้อมกับการเผยแพร่ในภายหลัง ตั้งแต่วันที่ 09/07/2018 รุ่นล่าสุดคือ v13.1“ โปรแกรมควบคุม ODBC สำหรับ SQL Server” ซึ่งเผยแพร่เมื่อ 23/03/2018
OLE DB
นี่คือเทคโนโลยีของ Microsoft ซึ่งพวกเขาส่งเสริมอย่างมากจากประมาณปี 2545-2548 พร้อมกับเลเยอร์ ADO ที่มาพร้อมกัน เห็นได้ชัดว่าพวกเขาหวังว่ามันจะกลายเป็นเทคโนโลยีการเข้าถึงข้อมูลที่เลือก (พวกเขาทำให้ ADO เป็นวิธีการเริ่มต้นสำหรับการเข้าถึงข้อมูลใน Access 2002/2003) อย่างไรก็ตามในที่สุดก็เห็นได้ชัดว่าสิ่งนี้จะไม่เกิดขึ้นด้วยเหตุผลหลายประการเช่น:
- โลกจะไม่เปลี่ยนไปใช้เทคโนโลยีของ Microsoft และอยู่ห่างจาก ODBC
- DAO / ODBC เร็วกว่า ADO / OLE DB และรวมเข้ากับ MS Access ได้อย่างสมบูรณ์ดังนั้นจึงไม่ต้องตายตามธรรมชาติ
- เทคโนโลยีใหม่ที่พัฒนาโดย Microsoft โดยเฉพาะ ADO.NET สามารถพูดคุยโดยตรงกับ ODBC ADO.NET สามารถพูดคุยโดยตรงกับ OLE DB ได้เช่นกัน (ดังนั้นปล่อยให้ ADO อยู่ในน้ำนิ่ง) แต่มันก็ไม่ใช่ (ต่างจาก ADO) เพียงอย่างเดียว
ด้วยเหตุผลเหล่านี้และอื่น ๆ Microsoft เลิกใช้ OLE DB เป็นเทคโนโลยีการเข้าถึงข้อมูลสำหรับ SQL Server ที่เผยแพร่หลัง v11 (SQL Server 2012) สองสามปีก่อนหน้านี้พวกเขาได้ผลิตและปรับปรุง SQL Server Native Client ซึ่งสนับสนุนทั้งเทคโนโลยี ODBC และ OLE DB อย่างไรก็ตามในช่วงปลายปี 2012 พวกเขาประกาศว่าพวกเขาจะสอดคล้องกับ ODBC สำหรับการเข้าถึงข้อมูลเชิงสัมพันธ์ดั้งเดิมใน SQL Server และสนับสนุนให้ทุกคนทำเช่นเดียวกัน พวกเขากล่าวเพิ่มเติมว่า SQL Server จะเผยแพร่หลังจาก v11 / SQL Server 2012 จะไม่สนับสนุน OLE DB!
การประกาศครั้งนี้ทำให้เกิดพายุประท้วง ผู้คนสูญเสียที่จะเข้าใจว่าทำไม MS จึงเลิกใช้เทคโนโลยีที่พวกเขาใช้เวลาหลายปีทำให้พวกเขาทุ่มเท นอกจากนี้ SSAS / SSRS และ SSIS ซึ่งเป็นแอปพลิเคชันที่เขียนด้วย MS เชื่อมโยงอย่างใกล้ชิดกับ SQL Server ทั้งหมดหรือบางส่วนขึ้นอยู่กับ OLE DB อีกข้อร้องเรียนหนึ่งคือ OLE DB มีคุณสมบัติที่ต้องการซึ่งดูเหมือนจะเป็นไปไม่ได้ที่จะย้ายกลับไปที่ ODBC - หลังจากทั้งหมด OLE DB มีคะแนนที่ดีมากมาย
ในเดือนตุลาคมปี 2017 ไมโครซอฟท์ยอมอ่อนข้อและอย่างเป็นทางการยกเลิกการเลิก OLE DB พวกเขาประกาศถึงการมาถึงของไดรเวอร์ใหม่ (MSOLEDBSQL) ซึ่งจะมีชุดฟีเจอร์ที่มีอยู่ของ Native Client 11 และจะแนะนำ failover หลายซับเน็ตและรองรับ TLS 1.2 คนขับได้รับการปล่อยตัวในเดือนมีนาคม 2018