powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Извлечение данных из базы данных в массив напрямую (без Recordset)
3 сообщений из 3, страница 1 из 1
Извлечение данных из базы данных в массив напрямую (без Recordset)
    #39637106
Drekon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Скажите, есть ли какая-нибудь библиотека для работы с базами данных, чтобы эта библиотека позволяла сразу извлекать данные в массив без записи в объект (под объектом я понимаю например Recordset)?

Под массивом я понимаю таблицу в оперативной памяти компьютера.
Под библиотекой я понимаю например: Microsoft Office версия Access database engine Object Library, Microsoft ActiveX Data Objects версия Library.
В обеих этих библиотеках, как я понял, данные нельзя напрямую выгрузить в массив, а сначала надо записать данные в Recordset, а затем из него в массив.

Почему я хочу напрямую: потому что запись в Recordset и извлечение из Recordset очень медленные.

Или до такого еще не додумались программисты и обязательно надо извлечь в объект?

Или может еще что-нибудь посоветуете? Мне нужно извлекать данные с использованием разных языков программирования: VBA, C#.
...
Рейтинг: 0 / 0
Извлечение данных из базы данных в массив напрямую (без Recordset)
    #39637437
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объект не содержит данных. Он только обеспечивает интерфейс для их получения. Способен ли он обеспечить получение сразу в массив - вопрос к авторам интерфейса. Oracle или ODBC, например, имеют интерфейсы такого типа. Про ADO я ничего не знаю.
...
Рейтинг: 0 / 0
Извлечение данных из базы данных в массив напрямую (без Recordset)
    #39637578
Drekon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, в Recordset более менее быстро записывается, а затем чтение из рекордсета в массив недопустимо долго.
Нужно извлекать данные из экселя.
ODBC может не все данные извлечь, если в столбце и текст и числа.
А у Microsoft ACE OLEDB 12.0 запись делается сначала в Recordset.

Сейчас код такой:
МакросSub макрос()

Dim DBEngine As DAO.DBEngine, db As DAO.Database, rs As DAO.RecordSet
Dim FN As String, SQLQuery As String, arr()

FN = "C:\Users\User\Desktop\База 3.xlsx"
SQLQuery = "SELECT * FROM [Лист1$]"

Set DBEngine = New DAO.DBEngine
Set db = DBEngine.OpenDatabase(name:=FN, Options:=False, ReadOnly:=True, Connect:="Excel 12.0 Xml;HDR=No;IMEX=1")
Set rs = db.OpenRecordset(name:=SQLQuery, Type:=dbOpenDynaset, Options:=dbReadOnly)
rs.MoveLast
rs.MoveFirst
arr() = rs.GetRows(rs.RecordCount)

End Sub

Хотелось бы так:
arr() = db
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / Извлечение данных из базы данных в массив напрямую (без Recordset)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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