powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / есть ли метод/свойство
7 сообщений из 7, страница 1 из 1
есть ли метод/свойство
    #32330629
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа (товарищи), есть ли метод программной очистки некоего объекта (черт, не знаю, как его обозвать), в котором аксес хранит историю редактирования модулей? (В ворде такая фенька - для программной очистки истории изменений была). Т.е. ту самую бяку, которая позволяет делать откаты изменений в модулях?

- Делаю программное редактирование проекта. Если периодически не сжимать базу (что приводить к сбросу истории), происходит переполнение памяти. Акс97.
...
Рейтинг: 0 / 0
есть ли метод/свойство
    #32330776
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно скажу - не знаю. Зашел на огонек потамушта просто стало интересно: А почему бы не делать переодическое сжатие? Или всё это дело выполняется "под пальцами" юзверя в рабочем режиме, "на лету"?

И в качестве "танца с бубном": Может быть попробовать копировать код модуля в обычный файл, редактировать его сколь угодно "много" без всякого сохранения истории, после чего копировать обратно в модуль? Может прокатит...

//Просто так: как-то копался в памяти процесса с Аксес. Сканировал всю память в попытках кое-что найти. Так вот лично у меня (A2000) весь измененный в модулях код продолжал весеть в памяти процесса даже после сжатия БД! Исчезал только после закрытия и повторного открытия Акса (то есть, после уничтожения старого и создания нового процесса)...
...
Рейтинг: 0 / 0
есть ли метод/свойство
    #32330808
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет Нуф-Еуф, давно не был

А как ты отслеживал, что код оставался висеть в памяти? Мне что-то кроме диспечера задач - ничего в голову не приходит - но это не то. Так как?
...
Рейтинг: 0 / 0
есть ли метод/свойство
    #32331147
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно сказать, не уверен, что проблема в "копилке изменений" (или как её там) просто сработала ассоциация - когда-то занимался массированной редакцией вордовых документов, там не то у аппликейшена, не то еще где была редко упоминаемая (в хелпе) возможность сбросить эту штуку (копилку). Ибо при многократной массовой замене по документу, размером с книжку создавался временный файл, выжирающий любые доступные дисковые ресурсы. А вот периодическая очистка этой "корзинки откатов" упрощала дело (правда если команда "изменить по всему документу" относилась к часто всречаемой в тексте комбинации, то кирдык мог наступить и внутри отработки этой единственной команды).

Я, подстраховываясь, поменял на:
If (Forms(aDoc.Name).HasModule) = True Then
конструкции вида
If Forms(aDoc.Name).HasModule Then
подумывал изменить на подобное даже проверку простых булевых переменных, но видимо дело не в этом.

Редактирую пока из отладчика (задача: - просто перевожу синтаксис с совместимого с DAO2.5/3.5 на DAO3.5(3.6)). Не слишком заморачиваюсь об оптимальности процедуры. Просто запускаю компилятор, нахожу очередную порцию несовместимого синтаксиса. И запускаю ф-ю, меняющую все вхождения данного вида во все модули (за исключением текста - который скорее всего может оказаться текстом SQL конструкции, и замены там не нужны - именно поэтому и не пользуюсь просто массовой заменой в редакторе модулей) на новый синтаксис. 2-3 запуска замены по всей базе (если замены еще и случились в массовых количествах) приводят к переполнению памяти. В этом случае выгрузка в текст ничего не дает - в один прогон меняется не весь синтаксис модуля. В конце прогона тексты модулей все равно нужно обновлять - чтобы найти следующую порцию для правки. Конечно можно пойти другим путем - составить максимально подробный перечень изменений (или правила) и пройтись по всем модулям один раз, а остатки уже выгребать руками. Но тогда и выгрузка в текст может не понадобиться. А в модуле уже реализованы методы Find и ReplaceLine. (Конечно в тексте это сделать несложно, и будет работать шустрее, но зачем? операции то эпизодические). Честно сказать, текущую задачку я уже прогнал описанным способом. Вот когда потребуется в следущий раз - подумаю как написать правила :0)

Просто интересный факт.
Спасибо.
...
Рейтинг: 0 / 0
есть ли метод/свойство
    #32331679
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Драсте!
Для Senin Viktor:
Да, Виктор, не всегда получается делать то, что тебе нравится :( Жисть она такая... //на счет "давно не был"...

А отслеживал через создание дампа памяти исследуемого процесса (в данном случае процесса с Аксом) и затем исследованием уже самого дампа...
Дамп запихивал в таблицу, после чего изголялся над ним стандартными методами работы с БД.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Public Sub msWriteDump2()
Dim rstDump As ADODB.Recordset
Dim i As Long
Dim a( 65536 ) As Byte
  Set rstDump = New ADODB.Recordset
  rstDump.Open  "Dump" , CurrentProject.Connection, _
    adOpenForwardOnly, adLockPessimistic, adCmdTableDirect
'300мс на копирование в таблицу 1Мб (P-MMX  200 )
  For i =  4194304  To  2147483647  Step  65536 
    rstDump.AddNew
    rstDump( "GranularityAddress" ) = i \  4 
    CopyMemory a( 0 ), ByVal i,  65535 
    rstDump( "Dump" ) = a
  Next i
End Sub
Приведеный код чисто демонстрационный, т.к. создает дамп полностью 2Гб процесса, куда загружены бесполезные для исследований экзешники, ДЛЛьки, пустая (неиспользуемая) память опять же... В реальном проекте (коде) всё это не "дампировалось".
Можно конечно полазить по памяти процесса и с помощью стандартных отладчиков, но у меня просто задача стояла такая - реализовать исследование памяти процесса собственными силами. Правда в итоге пришлось писать С++ ДЛЛьку (не дописал... "проект" пока заморожен:) - уж больно VBA тормозит :(
Вот такие пироги...

Для assa:
Ну тогда (в этом случае) возможно проще выполнять сжатие после каждого редактирования... Хотя, конечно, досадно, что в Аксе опять что-то работает не так как должно бы...
...
Рейтинг: 0 / 0
есть ли метод/свойство
    #32331691
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Нуф-Нуф

Прикольные ты задачки решаешь. :)
...
Рейтинг: 0 / 0
есть ли метод/свойство
    #32331715
Фотография Нуф-нуф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Прикольные ты задачки решаешь. :)
Да я вообще прикольный... когда дело не касается задачи зарабатывания денег :)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / есть ли метод/свойство
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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