2016-06-18 32 views
6

Ho un database SQL Server e ho bisogno di spingere i dati in esso tramite vbscript, nonché di estrarre i dati in Excel. Ho trovato più stringhe di connessione, ma nessun repository per i benefici di prestazioni e funzionalità a confronto. Le opzioni del driver (Provider=) che ho trovato finora sono: (? Più recente di ODBC, ma essendo deprecated)Quali sono le differenze tra i driver OLEDB/ODBC durante la connessione a SQL Server?

  • {SQL Server} (ODBC)
  • SQLOLEDB
  • SQLOLEDB.1 (ciò che Excel 2016 usa quando si clicca 'Carica dati esterni', ma non se ne parla nemmeno sul connectionstrings.com ... io presumo una versione più recente di quanto sopra, ma ancora la tecnologia deprecato?)
  • SQLNCLI11 (native client, OLE DB)
  • {SQL Server Native Client 11. 0} (client nativo, ODBC)

Diverse cose che ho letto dicono che ODBC è migliore perché è stato più lungo. E che OLE DB è stato in giro abbastanza a lungo da avere gli stessi vantaggi. E OLE DB è stato creato per funzionare con le applicazioni di una certa azienda. E ODBC è stato creato dalla stessa azienda. E OLE DB può connettersi meglio a diversi tipi di applicazioni. E ODBC funziona meglio con i database. E Nativo è ... Nativo, quindi deve essere migliore ... a causa del nome?

Trovo più domande qui su SO fluttuante senza risposte parziali o parziali, o con più commenti che affermano che le risposte non sono aggiornate. Quindi, al momento, quali sono le differenze specifiche tra questi diversi driver? Hanno prestazioni diverse in circostanze diverse? Hanno caratteristiche diverse? Devo fare il profiling per determinare le migliori prestazioni e affidabilità per il mio caso d'uso particolare, oppure esiste una "best practice" standard raccomandata da Microsoft o qualche esperto riconosciuto? O fondamentalmente stanno facendo la stessa cosa e finché è installato sul sistema di destinazione non ha molta importanza?

+0

Usiamo SQL Server come back-end con Access e Excel sul front-end con client nativo. Tutto funziona bene. – gofr1

+1

Dai un'occhiata a questo: http://stackoverflow.com/questions/103167/what-is-the-difference-between-ole-db-and-odbc-data-sources – Alex

+0

@Alex Grazie. Questa è sicuramente la prima domanda da cercare, e ovviamente richiesta prima che qualcuno possa pubblicare una domanda come questa. Questa domanda specifica è anche ciò a cui mi riferivo quando ho detto "più commenti che affermano che le risposte non sono aggiornate", ma non è l'unico. Immagino sia per questo che l'hai fatto notare, in modo che altri che non hanno fatto la ricerca che hai fatto possano entrare nella conversazione più facilmente, giusto? – CWilson

risposta

0

ODBC: è progettato per la connessione a database relazionali. Tuttavia, OLE DB può accedere ai database relazionali e ai database non correlati.

Ci sono dati nei server di posta, servizi di directory, fogli di calcolo e file di testo. OLE DB consente a SQL Server di collegarsi a questi sistemi di database non correlati. Ad esempio, se si desidera eseguire una query, tramite SQL Server, Active Directory sul controller di dominio, non è possibile farlo con ODBC, perché non è un database relazionale. Tuttavia, è possibile utilizzare un provider OLE DB per ottenere ciò.

http://www.sqlservercentral.com/Forums/Topic537592-338-1.aspx