อะไรคือความแตกต่างระหว่างแหล่งข้อมูล OLE DB และ ODBC?


171

ฉันอ่านบทความช่วยเหลือ MS Excel เกี่ยวกับ pivotcache และสงสัยว่าพวกเขาหมายถึงอะไรโดยแหล่งข้อมูล OLE DB และ ODBC

... คุณควรใช้คุณสมบัติ CommandText แทนคุณสมบัติ SQL ซึ่งตอนนี้มีอยู่เป็นหลักสำหรับความเข้ากันได้กับ Microsoft Excel รุ่นก่อนหน้า หากคุณใช้ทั้งสองคุณสมบัติค่าของ CommandText จะมีความสำคัญกว่า

สำหรับแหล่ง OLE DBคุณสมบัติ CommandType จะอธิบายค่าของคุณสมบัติ CommandText

สำหรับแหล่ง ODBCนั้นคุณสมบัติ CommandText จะทำงานเหมือนกับคุณสมบัติ SQL และการตั้งค่าคุณสมบัติจะทำให้ข้อมูลถูกรีเฟรช ...

ฉันขอขอบคุณคำตอบสั้น ๆ ของคุณ


2
เพียงหมายเหตุด้านข้างตามหนังสือเล่มนี้การใช้คลังข้อมูลกับ Microsoft SQL Server 2012 : "Microsoft ได้ประกาศว่าในอนาคตอันใกล้การสนับสนุนการเชื่อมต่อ OLE DB จะถูกลบออกเนื่องจากการเชื่อมต่อ ODBC"
B. Burgdorf

2
ตั้งแต่เดือนตุลาคม 6 2017 จะไม่ได้รับการยกเลิก ดูblogs.msdn.microsoft.com/sqlnativeclient/2017/10/06/ …
Bogey Jammer

คำตอบ:


147

ตามADO: ActiveX Data Objectsหนังสือของ Jason T. Roff จัดพิมพ์โดย O'Reilly Media ในปี 2544 (แผนภาพยอดเยี่ยมที่นี่) เขากล่าวอย่างแม่นยำถึงสิ่งที่ MOZILLA กล่าว

(โดยตรงจากหน้า 7 ของหนังสือเล่มนั้น)

  • ODBC ให้การเข้าถึงฐานข้อมูลเชิงสัมพันธ์เท่านั้น
  • OLE DB มีคุณสมบัติดังต่อไปนี้
    • การเข้าถึงข้อมูลโดยไม่คำนึงถึงรูปแบบหรือตำแหน่ง
    • การเข้าถึงแหล่งข้อมูล ODBC และไดรเวอร์ ODBC แบบเต็ม

ดังนั้นดูเหมือนว่า OLE DB จะโต้ตอบกับแหล่งข้อมูล SQL ที่ใช้ THRU เลเยอร์ไดรเวอร์ ODBC

ข้อความแสดงแทน

ฉันไม่แน่ใจ 100% ภาพนี้ถูกต้อง การเชื่อมต่อสองอย่างที่ฉันไม่แน่ใจคือ ADO.NET ผ่าน ADO C-api และ OLE DB ผ่าน ODBC ไปยังแหล่งข้อมูลที่ใช้ SQL (เนื่องจากในแผนภาพนี้ผู้เขียนไม่ได้ใส่ OLE DB ผ่าน ODBC ซึ่งเชื่อว่า เป็นความผิดพลาด)


7
ถ้า OLE DB ใช้ ODBC เพื่อเชื่อมต่อกับแหล่งข้อมูล SQL แหล่งข้อมูล SQL ใด ๆ ที่ได้รับการสนับสนุนโดย OLE DB จะต้องได้รับการสนับสนุนโดย ODBC อย่างไรก็ตามนี่ไม่ใช่กรณี - แผนภาพต้นฉบับจะต้องถูกต้อง (ไม่ใช่อันนี้ )
Danny Varod

8
ที่จริงบางครั้ง OLE DB ล้อมรอบไดรเวอร์ ODBC บางครั้งก็ไม่ ดูที่นี่
bobobobo

3
รายการนี้jamesmccaffrey.wordpress.com/2006/05/02/odbc-vs-ole-dbบอกว่าสำหรับ SQL DS, OLEDB ไปถึง ODBC
Hernán

1
@DannyVarod Ah ไม่เป็นไร ฉันพลาดตัวระบุที่สำคัญใน " แหล่งข้อมูลSQLใด ๆที่ OLE DB รองรับ ... " ฉันกำลังพูดถึงความจริงที่ว่าเนื่องจาก OLE DB สนับสนุนแหล่งข้อมูลที่ไม่ใช่ RDBMS จึงเป็นไปได้โดยสิ้นเชิงสำหรับชุดแหล่งข้อมูลที่ไม่ได้กรองซึ่งสนับสนุนโดย OLE DB ให้เป็นชุดข้อมูลที่สนับสนุนโดย ODBC
ซาด Saeeduddin

4
ADO.NET ไม่ตัดคำ ADO โดยทั่วไปคลาส ADO.NET จะพูดคุยโดยตรงกับฐานข้อมูลหรือไลบรารีเครือข่ายฐานข้อมูลของพวกเขาไม่ใช่ผ่านเลเยอร์ผู้ให้บริการ / ไดรเวอร์อื่น ๆ ตัวอย่างเช่นSystem.Data.SqlClientจัดการโปรโตคอล TDS ในรหัสที่ได้รับการจัดการโดยใช้รหัสเนทีฟเพื่อจัดการการส่งผ่าน TCP / Named Pipes / etc ผ่านเครือข่าย สำหรับฐานข้อมูลที่ไม่มีผู้ให้บริการที่ได้รับการจัดการของตนเองคุณสามารถใช้System.Data.OleDbเพื่อตัด OLE DB หรือSystem.Data.Odbcเพื่อตัด ODBC แต่ไม่แนะนำให้ใช้
Mike Dimmick

55

ODBC: - สำหรับฐานข้อมูลเชิงสัมพันธ์เท่านั้น (SQL Server, Oracle เป็นต้น)

OLE DB: - สำหรับทั้งฐานข้อมูลเชิงสัมพันธ์และไม่สัมพันธ์ (Oracle, Sql-Server, Excel, ไฟล์ดิบและอื่น ๆ )


4
ผิดทั้งคู่สามารถพูดคุยกับร้านค้าที่ไม่เกี่ยวข้องขึ้นอยู่กับไดรเวอร์
Andy Dent

1
ไม่ด้วย ODBC คุณสามารถค้นหาแม้แต่ไฟล์ CSV แบบแบนไม่เพียงแค่ฐานข้อมูลเชิงสัมพันธ์
Wernfried Domscheit

ไม่ถูกต้อง! นอกจากนี้ยังมีไฟล์ข้อความและไดรเวอร์ ODBC XML
สกอตต์บุญชู

1
ฉันคิดว่านี่ไม่ถูกต้อง ... Open Database Connectivity (ODBC) is Microsoft's strategic interface for accessing data in a heterogeneous environment of relational and non- relational database management systems. support.microsoft.com/en-us/kb/110093
uzay95

11
ฮ่า ๆ ๆ พวกคุณกำลังพูดถึง ODBC ในปี 2009 หรือ 2016 ... มันถูกต้อง
Yousha Aleayoub

42

นี่คือความเข้าใจของฉัน (ไม่มีสิทธิ์):

ODBC เป็นมาตรฐานเปิดที่ไม่เชื่อเรื่องพระเจ้าที่ได้รับการสนับสนุนจากผู้จำหน่ายซอฟต์แวร์ส่วนใหญ่ OLEDB เป็นAPI เฉพาะทางเทคโนโลยีของ Microsoft จากยุค COM (COM เป็นส่วนประกอบและเทคโนโลยีการทำงานร่วมกันก่อน. NET)

ในบางจุดผู้ค้าดาต้าหลายราย (เช่น Oracle เป็นต้น) ยินดีที่จะเข้ากันได้กับผู้บริโภคข้อมูลของ Microsoft พัฒนาผู้ให้บริการ OLEDB สำหรับผลิตภัณฑ์ของตน แต่ส่วนใหญ่ OLEDB ยังคงเป็นมาตรฐานของ Microsoft เท่านั้น ตอนนี้แหล่งข้อมูลของMicrosoftส่วนใหญ่อนุญาตให้เข้าถึงทั้ง ODBC และ OLEDB ส่วนใหญ่สำหรับความเข้ากันได้กับผู้บริโภคข้อมูล ODBC ดั้งเดิม นอกจากนี้ยังมีผู้ให้บริการ OLEDB (wrapper) สำหรับ ODBC ซึ่งอนุญาตให้ผู้ใช้ OLEDB เข้าถึงแหล่งข้อมูล ODBC หากต้องการ

ในแง่ของฟีเจอร์ OLEDB นั้นมีความสมบูรณ์มากกว่า ODBC อย่างมาก แต่ได้รับความทุกข์ทรมานจากกลุ่มอาการของโรคหนึ่งเดียวต่อกลุ่มพวกเขาทั้งหมด (ทั่วไปมากเกินไป, ซับซ้อนเกินไป, ไม่มีความเห็น)

ในผู้ให้บริการข้อมูลและไคลเอนต์ที่ใช้ ODBC ที่ไม่ใช่ของ Microsoft นั้นมีการใช้กันอย่างแพร่หลาย

ภายใน Microsoft bubble OLEDB นั้นกำลังถูกเลิกใช้งานเนื่องจาก API ของเนทิฟ NET สร้างขึ้นบนชั้นใด ๆ ของเลเยอร์การส่งข้อมูลดั้งเดิมสำหรับแหล่งข้อมูลนั้น (เช่น TDS สำหรับ MS SQL Server)


20

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) อย่างไรก็ตามในที่สุดก็เห็นได้ชัดว่าสิ่งนี้จะไม่เกิดขึ้นด้วยเหตุผลหลายประการเช่น:

  1. โลกจะไม่เปลี่ยนไปใช้เทคโนโลยีของ Microsoft และอยู่ห่างจาก ODBC
  2. DAO / ODBC เร็วกว่า ADO / OLE DB และรวมเข้ากับ MS Access ได้อย่างสมบูรณ์ดังนั้นจึงไม่ต้องตายตามธรรมชาติ
  3. เทคโนโลยีใหม่ที่พัฒนาโดย 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


@ChieltenBrinke ฉันได้รวมโพสต์เข้าด้วยกันจากหลายแหล่งเช่นลิงก์ที่ฉันอัปเดตโพสต์เพื่อรวมไว้และไม่น้อยไปกว่าความคิดเห็นที่พวกเขาก่อขึ้น แหล่งข้อมูลอื่น ๆ คือหนังสือของ Jason Roff เกี่ยวกับ ADO ที่ได้รับการกล่าวถึงโดย bobobobo และคู่มือนักพัฒนาเดสก์ท็อปของ Access 2002 โดย Litwin, Getz และ Gunderloy (เก่าจริง แต่คลาสสิกจริง) ฉันไม่มีแทร็กใด ๆ ในไมโครซอฟท์ดังนั้นการคาดเดาของฉันเกี่ยวกับการคิดที่อยู่เบื้องหลังการเปลี่ยนแปลงทิศทางต่าง ๆ ของพวกเขาแม้ว่าจะเป็นไปได้ทั้งหมดล้วนเป็นของฉันเอง
marktwo

6

ในระดับพื้นฐานนั้นเป็นเพียง API ที่แตกต่างกันสำหรับแหล่งข้อมูลต่าง ๆ (เช่นฐานข้อมูล) OLE DB ใหม่กว่าและดีกว่า

คุณสามารถอ่านเพิ่มเติมได้จาก Wikipedia:

  1. OLE DB
  2. ODBC

นั่นคือคุณสามารถเชื่อมต่อกับฐานข้อมูลเดียวกันโดยใช้ไดรเวอร์ ODBC หรือไดรเวอร์ OLE DB ความแตกต่างของพฤติกรรมฐานข้อมูลในกรณีเหล่านี้คือสิ่งที่หนังสือของคุณอ้างถึง


4
เช่นเดียวกับวิชาที่เกี่ยวข้องกับไอทีหลายสิ่งเกือบจะมาเต็มวงแล้ว SQL 2012 เป็นรุ่นล่าสุดที่ให้การสนับสนุนผู้ให้บริการ OLE DB Native และแอปพลิเคชันในขณะนี้ควรสลับไปที่ ODBC เหมือน "วันสมัยก่อน" ของ SQL Server technet.microsoft.com/en-us/library/hh967418.aspx
Chris Wood

4
"OLE DB เป็นรุ่นที่ใหม่กว่าและดีกว่า" นี่อาจเป็นจริงในปี 2008 แต่ไม่ใช่ในปี 2014
Michael David Watson

@MichaelDavidWatson คุณจะว่าอย่างไร ใช้ ODBC หรือ OLEDB ที่ดีกว่านี้หรือไม่ ฉันต้องการสนับสนุนฐานข้อมูล SQL ที่แตกต่างกันมากที่สุด และตามที่ระบุ OLE DB อาจเข้าถึงแหล่งข้อมูล ODBC ดังนั้นทำไมคุณถึงพูดว่า "OLE DB เป็นรุ่นที่ใหม่กว่าและดีกว่า" ว่ายังไม่ถูกต้องในปี 2558 :)
LuckyLikey

@LuckyLikey MS เลิกใช้ OLEDB แล้วและ SQL Server ไม่สนับสนุนอีกต่อไป (SS 2012 เป็นคนสุดท้ายที่ให้การสนับสนุน) msdn.microsoft.com/en-us/library/hh967418.aspx
Robino

5

ทั้งคู่เป็นผู้ให้บริการข้อมูล (API ที่โค้ดของคุณจะใช้เพื่อพูดคุยกับแหล่งข้อมูล) Oledb ซึ่งเปิดตัวในปี 1998 มีวัตถุประสงค์เพื่อทดแทน ODBC (เปิดตัวในปี 1992)



3

ฉันไม่แน่ใจรายละเอียดทั้งหมด แต่ความเข้าใจของฉันคือ OLE DB และ ODBC เป็นสอง API ที่พร้อมใช้งานสำหรับการเชื่อมต่อกับฐานข้อมูลประเภทต่างๆโดยไม่ต้องจัดการกับรายละเอียดเฉพาะของแต่ละการใช้งาน ตามบทความ Wikipedia เกี่ยวกับ OLE DB OLE DB เป็นผู้สืบทอดของ Microsoft ต่อ ODBC และมีคุณสมบัติบางอย่างที่คุณอาจไม่สามารถทำได้กับ ODBC เช่นการเข้าถึงสเปรดชีตเป็นแหล่งฐานข้อมูล


2

ที่เว็บไซต์ของ Microsoft แสดงว่าผู้ให้บริการ OLEDB ดั้งเดิมนั้นถูกนำไปใช้กับเซิร์ฟเวอร์ SQL โดยตรงและผู้ให้บริการ OLEDB อีกรายหนึ่งที่เรียกว่า OLEDB Provider สำหรับ ODBC เพื่อเข้าถึงฐานข้อมูลอื่นเช่น Sysbase, DB2 ฯลฯ มีส่วนประกอบที่แตกต่างกันภายใต้ผู้ให้บริการ OLEDB ดูแบบสอบถามแบบกระจายใน MSDNสำหรับข้อมูลเพิ่มเติม


0

ODBC ทำงานได้เฉพาะกับฐานข้อมูลเชิงสัมพันธ์เท่านั้นไม่สามารถทำงานกับฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์เช่นไฟล์ Ms Excel ที่ Olebd สามารถทำทุกอย่างได้


-3

หากต้องการทราบว่าทำไม M $ invents OLEDB คุณไม่สามารถเปรียบเทียบ OLEDB กับ ODBC ได้ คุณควรเปรียบเทียบ OLEDB กับ DAO, RDO หรือ ADO หลังส่วนใหญ่อาศัย SQL อย่างไรก็ตาม OLEDB พึ่งพา COM แต่ ODBC นั้นมีมาหลายปีแล้วดังนั้นจึงมีสะพาน OLEDB-ODBC เพื่อแก้ไขปัญหานี้ ฉันคิดว่ามีภาพใหญ่เมื่อ M $ คิดค้น OLEDB

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.