0 / 0 / 0
Регистрация: 27.02.2016
Сообщений: 30
1

Низкая скорость записи в базу данных (ADODB.Recordset)

16.06.2016, 15:53. Показов 1601. Ответов 1

Описание
Файл эксель смотрит в ThisWorkbook.Path и находит базу данных.

Выбирается база данных, имя пользователя и пароль.

Пара логин/пасс:

1. admin/aaa
2. User1/bbb
3. User2/ccc

Берутся из базы данных. На БД пароль 642531

Что не выходит
С небольшими БД работает отлично. С БД от 25-50 мегабайт - очень долгая запись обратно в БД. Грузит более-менее быстро объемные БД, а вот в базу записывает довольно долго и это проблема (по этой причине у меня не прижилось). Возможно, кому-то получится решить этот вопрос, буду очень признателен.
Вложения
Тип файла: zip db.zip (612.1 Кб, 4 просмотров)
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.06.2016, 15:53
Ответы с готовыми решениями:

Чрезвычайно низкая скорость добавления записей в удаленную базу данных
Подскажите, чем может быть вызвана чрезвычайно низкая скорость добавления записей в удаленную базу...

Номер текущей записи в ADODB.Recordset
Подскажите каким образом можно получить номер текущей записи в ADODB.Recordset....

Recommended style: Private rstOrder As ADODB.Recordset Set rstOrder = New ADODB.REcordset
Ошибка такая Object variable or With block variable not set. Код такой: Private rstOrder As...

SQLite скорость записи в базу данных
Решил посмотреть SQLite и с чем его едят. Вроде со всем разобрался и очень все понравилось, кроме...

1
Эксперт MS Access
26720 / 14400 / 3190
Регистрация: 28.04.2012
Сообщений: 15,782
16.06.2016, 16:54 2
Лучший ответ Сообщение было отмечено snipe как решение

Решение

Конечно построчная запись это очень медленно. Надо запросом.
Visual Basic
1
2
3
4
5
6
7
Dim dao as object, db as object
dim s
Set dao = CreateObject("DAO.DBEngine.36")
Set db = dao.OpenDatabase("путь\ИмяБД.accdb")
s="insert into ИмяТаблицы (список полей) " _
& " select * from [ИмяЛиста$] in '" & activeworkbook.FullName & "'[Excel 12.0; hdr=yes;]"
db.execute s
можно указать Range для экспорта, или несколько регионов, можно изменять тип данных, можно указать что первая строка региона тоже данные, а не имена полей (hdr=no). Но в любом случае надо передавать данные запросом, а не сканированием рекордсета

Добавлено через 35 минут
Ошибся. Версия DBEngine для accdb не 36, а 120:
Visual Basic
1
Set dao = CreateObject("DAO.DBEngine.120")
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.06.2016, 16:54

Обращение к данным в БД. Ошибка: Объект не является ни ADODB.RecordSet, ни ADODB.Record
при созданиие приложения в коде у меня возникла ошибка подскажите суть проблемы ...

XML->ADODB.Stream->ADODB.Recordset
Пытаюсь настроить XML->ADODB.Stream->ADODB.Recordset Подаю ПРАВИЛЬНЫЙ XML на вход ниже...

Импорт данных из Access в Excel с использованием объекта Recordset библиотеки ADODB
'Option Explicit Sub AccessToXL() Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Dim...

Низкая скорость записи
Сильно упала скорость записи, может кто то уже имел дело с подобным? Похожей темы с ответом не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.