문제

피봇캐시(pivotcache)에 대한 MS Excel 도움말 기사를 읽고 있었는데 이것이 무슨 뜻인지 궁금합니다. OLE DB 및 ODBC 소스

... SQL 속성 대신 CommandText 속성을 사용해야하며, 이는 주로 이전 버전의 Microsoft Excel과의 호환성을 위해 존재합니다.두 속성을 모두 사용하면 CommandText 속성의 값이 우선합니다.

을 위한 OLE DB 소스, CommandType 속성은 CommandText 속성의 값을 설명합니다.

을 위한 ODBC 소스, CommandText 속성은 SQL 속성과 똑같은 기능을 수행하고 속성을 설정하면 데이터가 새로 고침됩니다 ...

귀하의 짧은 답변에 진심으로 감사드립니다.

도움이 되었습니까?

해결책

에 따르면 야단법석:ActiveX 데이터 개체, 제이슨 T.Roff, 2001년 O'Reilly Media에서 출판 (여기의 훌륭한 다이어그램) 그는 MOZILLA가 말한 것을 정확하게 말합니다.

(그 책의 7페이지에서 직접)

  • ODBC는 관계형 데이터베이스에만 액세스를 제공합니다.
  • OLE DB는 다음과 같은 기능을 제공합니다
    • 형식이나 위치에 관계없이 데이터에 액세스
    • ODBC 데이터 소스 및 ODBC 드라이버에 대한 전체 액세스

따라서 OLE DB는 ODBC 드라이버 계층을 통해 SQL 기반 데이터 소스와 상호 작용하는 것처럼 보입니다.

alt text

이 이미지가 정확하다고 100% 확신할 수는 없습니다. 확실하지 않은 두 가지 연결은 ADO C-api를 통한 ADO.NET과 SQL 기반 데이터 소스에 대한 ODBC를 통한 OLE DB입니다(왜냐하면 이 다이어그램 저자는 ODBC를 통해 OLE DB의 액세스를 허용하지 않습니다. 이는 실수라고 생각됩니다.

다른 팁

ODBC:- 관계형 데이터베이스(Sql Server, Oracle 등)에만 해당

OLE DB:- 관계형 및 비관계형 데이터베이스 모두에 사용됩니다.(Oracle, Sql-Server, Excel, 원시 파일 등)

내 이해는 다음과 같습니다(신뢰할 수 없음).

ODBC는 대부분의 소프트웨어 공급업체에서 지원하는 기술에 구애받지 않는 개방형 표준입니다.OLEDB는 기술별 COM 시대의 Microsoft API(COM은 .NET 이전의 구성 요소이자 상호 운용성 기술이었습니다.)

어떤 시점에서는 다양한 데이터 소스 공급업체(예:Oracle 등)은 Microsoft 데이터 소비자와 호환되기를 원하며 자사 제품에 대한 OLEDB 공급자를 개발했지만 대부분의 경우 OLEDB는 Microsoft 전용 표준으로 남아 있습니다.지금은 대부분 마이크로소프트 데이터 소스는 주로 레거시 ODBC 데이터 소비자와의 호환성을 위해 ODBC 및 OLEDB 액세스를 모두 허용합니다.또한 원하는 경우 OLEDB를 사용하여 ODBC 데이터 소스에 액세스할 수 있게 해주는 ODBC용 OLEDB 공급자(래퍼)가 있습니다.

기능 측면에서 OLEDB는 ODBC보다 훨씬 더 풍부하지만 일대일 규칙 증후군(지나치게 일반적이고 지나치게 복잡하며 의견이 없음)을 겪고 있습니다.

Microsoft 이외의 세계에서는 ODBC 기반 데이터 공급자와 클라이언트가 널리 사용되고 있으며 아무데도 가지 않습니다.

Microsoft 버블 내부에서 OLEDB는 해당 데이터 소스에 대한 기본 전송 계층 위에 구축된 기본 .NET API를 위해 단계적으로 폐지되고 있습니다(예:MS SQL Server용 TDS).

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 DB와 유사한 방식으로 액세스하려는 경우 OLE와 ODBC 간에 사용할 수 있는 인터페이스가 있습니다.이 인터페이스를 MSDASQL(ODBC용 Microsoft OLE DB 공급자)이라고 합니다.

SQL Server 데이터 액세스 기술

SQL Server는 (1) Microsoft에서 만들었고 (2) 그만큼 Microsoft 데이터베이스 플랫폼인 ODBC와 OLE DB가 모두 이에 적합합니다.

ODBC

다른 모든 데이터베이스 플랫폼에는 ODBC 인터페이스가 있으므로 Microsoft는 당연히 SQL Server용 인터페이스를 제공해야 했습니다.이 외에도 Microsoft Access의 원래 기본 기술인 DAO는 모든 외부 데이터 소스와 통신하는 표준 방법으로 ODBC를 사용합니다.이로 인해 ODBC 인터페이스가 필수 항목이 되었습니다.SQL Server 2000과 함께 출시된 SQL Server용 버전 6 ODBC 드라이버는 여전히 사용 가능합니다.새로운 데이터 유형, 연결 기술, 암호화, HA/DR 등을 처리하기 위해 업데이트된 버전이 출시되었습니다.후속 릴리스와 함께 등장했습니다.2018년 9월 7일 현재 최신 릴리스는 2018년 3월 23일에 릴리스된 v13.1 "SQL Server용 ODBC 드라이버"입니다.

OLE DB

이는 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를 더 이상 사용하지 않음 v11(SQL Server 2012) 이후 SQL Server 릴리스의 경우.이 시점 이전 몇 년 동안 그들은 ODBC와 OLE DB 기술을 모두 지원하는 SQL Server Native Client를 생산하고 업데이트해 왔습니다.그러나 2012년 후반에 그들은 SQL Server의 기본 관계형 데이터 액세스를 위해 ODBC와 협력할 것이라고 발표하고 다른 모든 사람들에게도 그렇게 하도록 권장했습니다.그들은 또한 v11/SQL Server 2012 이후의 SQL Server 릴리스가 적극적으로 ~ 아니다 OLE DB를 지원합니다!

이 발표는 엄청난 항의를 불러일으켰습니다.사람들은 왜 MS가 수년을 들여 헌신하려고 노력했던 기술을 갑자기 더 이상 사용하지 않는지 이해하지 못했습니다.또한 SQL Server와 긴밀하게 연결된 MS 작성 애플리케이션인 SSAS/SSRS 및 SSIS는 전부 또는 부분적으로 OLE DB에 의존했습니다.또 다른 불만은 OLE DB에 ODBC로 다시 포팅하는 것이 불가능해 보이는 바람직한 기능이 있다는 것이었습니다. 결국 OLE DB에는 좋은 점이 많이 있었습니다.

2017년 10월, Microsoft는 마음을 누그러뜨렸습니다. 공식적으로 더 이상 사용되지 않는 OLE DB.그들은 Native Client 11의 기존 기능 세트를 포함하고 다중 서브넷 장애 조치 및 TLS 1.2 지원을 도입할 새로운 드라이버(MSOLEDBSQL)가 곧 출시될 것이라고 발표했습니다.드라이버는 2018년 3월에 출시되었습니다.

매우 기본적인 수준에서는 서로 다른 데이터 소스에 대한 서로 다른 API일 뿐입니다(예:데이터베이스).OLE DB는 더 새롭고 틀림없이 더 좋습니다.

Wikipedia에서 두 가지에 대한 자세한 내용을 읽을 수 있습니다.

  1. OLE DB
  2. ODBC

즉.ODBC 드라이버나 OLE DB 드라이버를 사용하여 동일한 데이터베이스에 연결할 수 있습니다.이러한 경우 데이터베이스 동작의 차이점은 책에서 언급하는 것입니다.

둘 다 데이터 공급자(코드가 데이터 소스와 통신하는 데 사용하는 API)입니다.1998년에 출시된 Oledb는 ODBC(1992년 출시)를 대체하기 위한 것이었습니다.

모든 세부 사항을 확신할 수는 없지만 OLE DB와 ODBC는 각각의 구현 관련 세부 사항을 모두 처리하지 않고도 다양한 유형의 데이터베이스에 연결할 수 있는 두 가지 API라는 것으로 이해됩니다.에 따르면 OLE DB에 대한 Wikipedia 기사, OLE DB는 Microsoft의 ODBC 후속 제품이며 데이터베이스 소스로 스프레드시트에 액세스하는 등 ODBC로 수행할 수 없는 일부 기능을 제공합니다.

Microsoft 웹 사이트에서는 기본 OLEDB 공급자가 SQL 서버에 직접 적용되고 OLEDB 공급자라는 또 다른 OLEDB 공급자인 ODBC가 Sysbase, DB2 등과 같은 다른 데이터베이스에 액세스하는 것을 보여줍니다.OLEDB 공급자에는 다양한 종류의 구성 요소가 있습니다.보다 MSDN의 분산 쿼리 이상.

• 2011년 8월:마이크로소프트 더 이상 사용되지 않습니다 OLE DB(Microsoft는 기본 관계형 데이터 액세스를 위해 ODBC를 사용하고 있습니다.)

• 2017년 10월:마이크로소프트 더 이상 사용되지 않습니다 OLE DB(SQL Server용 OLE DB 드라이버의 새 릴리스 발표)

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