powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Отличия способа подключения ODBC от OLE DB
3 сообщений из 3, страница 1 из 1
Отличия способа подключения ODBC от OLE DB
    #33368021
Lutik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я давно программирую на VBA в Microsoft Excel, но с необходимостью использования SQL запросов столкнулся относительно недавно. Хотелось бы услышать мнение профессионалов, специалистов.

Задача: Необходимо брать и/или записывать данные из/в файл Excel *.xls причем особенность в том, что все это делается на VBA в Microsoft Excel.

Варианты подключения:
1. ODBC
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
...
    strNameFile = "C:\MyExcel.xls"
    Set oConn = CreateObject("ADODB.Connection")
    oConn.Open "Driver={Microsoft Excel Driver (*.xls)};DBQ=" & strNameFile & "; DriverID=278"
    Set oRs = CreateObject("ADODB.RecordSet")
    Set oRs = oConn.Execute("SELECT * FROM [Лист1$]")
...
'дальше работаем с объектом RecordSet
Do Until oRs.EOF
    ...
    oRs.MoveNext
Loop
...
2. OLE DB
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
...
    strNameFile = "C:\MyExcel.xls"
    Set oConn = CreateObject("ADODB.Connection")
    oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strNameFile & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
    Set oRs = CreateObject("ADODB.RecordSet")
    Set oRs = oConn.Execute("SELECT * FROM [Лист1$]")
...
'дальше работаем с объектом RecordSet
Do Until oRs.EOF
    ...
    oRs.MoveNext
Loop
...

Вопросы:
1. В чем принципиальные отличия 2х способов подключения, которые так или иначе могут повлиять на результат? Какой способ предпочтительней использовать?
2. Что означает, для чего предназначен DriverID=278 в 1м способе и какие возможны варианты?
3. Какой из способов быстрее?
4. Почему работа с объектом RecordSet в этих случаях осуществляется "немного" медленнее чем аналогичный взятый из SQL Server
...
Рейтинг: 0 / 0
Отличия способа подключения ODBC от OLE DB
    #33368224
Letter_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.
Абсолютно одинаково, лишь бы подключиться.
2.
DriverID=278 скорей всего взялся из макрорекродера, или иже с ним, можно вообще опустить этот параметр
3.
Абсолютно одинаково, лишь бы подключиться.
...
Рейтинг: 0 / 0
Отличия способа подключения ODBC от OLE DB
    #33368667
Фотография PA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Letter_DАбсолютно одинаково, лишь бы подключиться.
Вообще-то есть парочка нюансов:

BUG: Excel ODBC Driver Disregards the FirstRowHasNames or Header Setting
Data truncated to 255 characters with Excel ODBC driver (Rows to Scan bug)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Отличия способа подключения ODBC от OLE DB
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]