iGrok писал(а):1) Зачем тебе динамический курсор (adOpenDynamic)? В бд что-то может поменяться, пока ты её обрабатываешь? Не уверен, что это сильно повлияет на скорость.. Но всё же поставь лучше adOpenStatic.
Да, угадал, в БД может что-то поменяться. Но впринципе это не критично, попробую поменять
iGrok писал(а):2) Like - он в принципе медленный. Что у тебя там за формат полей и записей, что не работает " = " ?
Да сам понять не могу. Проде должно срабатывать =. Поля текстовые обычные. Только вот в одной таблице значение с пробелом, во второй без. Пробовал убирать пробелы и как уже говорил никак....
iGrok писал(а):3) Я надеюсь, Price, DataMake - это аксессовские таблицы? )
Да, так и есть
iGrok писал(а):4) Используй всё-таки нормальный синтаксис SQL..
CnDb.Execute "INSERT INTO DataMake (SChet, DateMakeSh, Pay) VALUES ('" & RsSHet("NSCH").Value & "', '" & NowDateFotmat & "', '" & RsSchet("SUMITOG").Value & "');"
Ну это тоже не так критично. Исправлю.
iGrok писал(а):5) Далее, вот это что такое?
RsSHet.Open "RSCHT", CnDb, adOpenDynamic, adLockOptimistic
Это аналог SELECT * FROM RSCHT ?
Да это его аналог, причем раьотает в сотни раз быстрее чем через Select. Программа даже не останавливается на этом месте. А вот с Select значительно подвисает на таком то киличестве записей...
iGrok писал(а):6) Ещё создаётся ощущение, что у тебя там есть что-то лишнее.. Сейчас времени нет разбирать код - вечером посмотрю и отпишусь.
Если честно то такое же ощущение-но смотрю как баран на новые ворота и не могу это лишнее понять. В коде есть что-то не так и это факт.
[Добавлено] В общем я так понял работа с dbf без косяков не обходится. То работает то нет что-то. Значит после применения фильтра скорось увеличилось в полтора раза почти. Конечно это большой выигрыш. Но все равно этого мало. И если честно я не знаю как возможно еще увеличить скорость. Есть консольное приложение, работающее с этими файлами. Не скажу что оно работает супер быстро, но быстрее чем если бы с ними работал я. Начинаю думать что методами ADO не справиться, возможно есть другой способ. Пробовал кстати не связывать таблицы в Access а просто импортировал и проделывал тоже самое. Итог один и тот же. Скорости не прибавилось.
Пишите жизнь на чистовик.....переписать не удастся.....