ADO + mdb = низкая(?) скорость выборки

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: ADO + mdb = низкая(?) скорость выборки

Сообщение Andrey Fedorov » 31.07.2010 (Сб) 23:20

alibek писал(а):
Andrey Fedorov писал(а):Действительно - попробовал сам - функции с MDB-шками действительно работают:

Дело не в MDB, а в Jet-провайдере. В документации об этом сказано, перечислены функции, которые поддерживаются.
LEN, TRIM, UCASE, LCASE и другие.


Да это понятно... Но не помню уже почему у меня отложилось что из VB6 они не работают - давно это было...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: ADO + mdb = низкая(?) скорость выборки

Сообщение iGrok » 31.07.2010 (Сб) 23:40

Andrey Fedorov писал(а):Но не помню уже почему у меня отложилось что из VB6 они не работают - давно это было...

Скорей всего, не заработала какая-то ещё функция, которая самим Access поддерживается, а Jet-провайдером - нет.
label:
cli
jmp label

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: ADO + mdb = низкая(?) скорость выборки

Сообщение alibek » 01.08.2010 (Вс) 15:58

iGrok писал(а):Скорей всего, не заработала какая-то ещё функция, которая самим Access поддерживается, а Jet-провайдером - нет.

Например, IIf или NZ.
Lasciate ogni speranza, voi ch'entrate.

SergT
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 237
Зарегистрирован: 22.06.2005 (Ср) 21:50
Откуда: Москва

Re: ADO + mdb = низкая(?) скорость выборки

Сообщение SergT » 03.08.2010 (Вт) 16:11

Andrey Fedorov писал(а):1. В данном контексте это функция на SQL, а Access.
2. Функции работают только если запрос выполняется из среды Access.
3. Приводить к верхнему регистру нафиг не нужно.


1, 2 - Давно пользуюсь подобным синтаксисом из VB, всегда работает. Кавычки тоже не проблема (Replace).
3. Очень нужно, так как записи, в моем случае, могут быть в разных регистрах.
например: [ИВАНОВ Иван Иванович] и [Иванов Иван Иванович] распознаются как разные записи!

А вот что вы думаете о задержках (см. название топика)?
Проблема так и осталась. Крутил, вертел индексы в таблицах - влияние конечно есть, но задержки появляются в других местах. Может действительно JET шалит? Переустановить что ли на всех компах?
Л. Толстой, «зачем обдумывать обдуманное, бери готовое и иди дальше, в этом сила человечества»
"Всё в наших руках, поэтому их нельзя опускать" (Коко Шанель)

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: ADO + mdb = низкая(?) скорость выборки

Сообщение iGrok » 03.08.2010 (Вт) 20:05

SergT писал(а):3. Очень нужно, так как записи, в моем случае, могут быть в разных регистрах.
например: [ИВАНОВ Иван Иванович] и [Иванов Иван Иванович] распознаются как разные записи!

Да что за ерунда..
Ну вбей обе записи в табличку и сделай выборку с where [field] = 'ИВАНОВ ИВАН ИВАНОВИЧ'. Выберутся ОБЕ записи.
Аналогично ведут себя почти все движки БД.

А насчёт тормозов - я уже писал, что работа с файловой БД по сети - весьма небыстра. И писал, что можно попробовать сделать - вытащить ВСЁ что нужно в рекордсет, и искать уже по нему при помощи Find / Filter.
Пробовал?

Да, разумеется, закрывать рекордсет после поиска не надо. Он должен висеть открытым всё то время, что он нужен в программе. Этот вариант, конечно, нехило жрёт память.. Но тормоза при работе с файловой бд мы в своё время победили только таким образом.
Ну а потом уже ушли с файловой на серверную..
label:
cli
jmp label

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: ADO + mdb = низкая(?) скорость выборки

Сообщение Andrey Fedorov » 04.08.2010 (Ср) 12:50

iGrok писал(а):
SergT писал(а):3. Очень нужно, так как записи, в моем случае, могут быть в разных регистрах.
например: [ИВАНОВ Иван Иванович] и [Иванов Иван Иванович] распознаются как разные записи!

Да что за ерунда..
Ну вбей обе записи в табличку и сделай выборку с where [field] = 'ИВАНОВ ИВАН ИВАНОВИЧ'. Выберутся ОБЕ записи.
Аналогично ведут себя почти все движки БД.


Есть все-же вариант когда не выберутся - неверно установленный Collation базы данных. Но это надо постараться.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

SergT
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 237
Зарегистрирован: 22.06.2005 (Ср) 21:50
Откуда: Москва

Re: ADO + mdb = низкая(?) скорость выборки

Сообщение SergT » 05.08.2010 (Чт) 11:57

iGrok писал(а):1. А насчёт тормозов - я уже писал, что работа с файловой БД по сети - весьма небыстра. И писал, что можно попробовать сделать - вытащить ВСЁ что нужно в рекордсет, и искать уже по нему при помощи Find / Filter.
Пробовал?
2. ...Этот вариант, конечно, нехило жрёт память.. Но тормоза при работе с файловой бд мы в своё время победили только таким образом.


1. Find Ни разу не пробовал. Обязательно проверю.
2. Пусть жрет! Не страшно! Тоже попробую!

Спасибо за подсказки!
Л. Толстой, «зачем обдумывать обдуманное, бери готовое и иди дальше, в этом сила человечества»
"Всё в наших руках, поэтому их нельзя опускать" (Коко Шанель)

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: ADO + mdb = низкая(?) скорость выборки

Сообщение Andrey Fedorov » 05.08.2010 (Чт) 13:33

SergT писал(а):1. Find Ни разу не пробовал. Обязательно проверю.


Вытаскиваешь в статический клиентский Recordset, индексируешь поле по которому ищешь:

Код: Выделить всё
r!ФИО.Properties!Optimize = True


Ну и далее Find

SergT писал(а):2. Пусть жрет! Не страшно! Тоже попробую!

Сколько записей-то в таблице? Вроде у тебя в любом варианте тормозов не должно быть...
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

SergT
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 237
Зарегистрирован: 22.06.2005 (Ср) 21:50
Откуда: Москва

Re: ADO + mdb = низкая(?) скорость выборки

Сообщение SergT » 05.08.2010 (Чт) 23:35

Записей 20 000-30 000 - влезет! Спасибо! Буду пробовать!
Л. Толстой, «зачем обдумывать обдуманное, бери готовое и иди дальше, в этом сила человечества»
"Всё в наших руках, поэтому их нельзя опускать" (Коко Шанель)

Пред.

Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 250

    TopList