Автор | Сообщение |
|
| постоянный участник
|
Пост N: 6857
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.12.20 20:07. Заголовок: Неисправимая ошибка 9009 или 9006
Прога на большой базе - 71 тыс.записей вылетает вот с такой ошибкой в error.log: Info: Harbour MiniGUI Extended Edition 20.12.0 (32-bit) Неисправимая ошибка 9009: hb_xrealloc ене может перераспределить память Called from DBAPPEND(0) Called from CREATEMEMTMP(1310) in Demo2.prg Called from MAIN(109) in Demo2.prg ------------------------------------------------------------------------ Вот выборочный код: REQUEST HB_MEMIO ... DBCREATE( cFileTmp, aStru, cVia, .T., cAlsTmp ) // область cAlsTmp k := FieldPos( cFld ) FOR i := 1 TO (cAlias)->( LastRec() ) SELECT(cAlsTmp) APPEND BLANK // строка 1310 FieldPut( k, i ) SELECT(cAlias) DBGOTO(i) IF (cAlias)->( DELETED() ) (cAlsTmp)->( DbDelete() ) ENDIF DO EVENTS NEXT Из одной базы копирую записи в новую базу MEMIO Как с этим бороться / что править ? [img class=smile" src=/gif/smk/sm33.gif] PS. База создаётся объемом 415 Мб ( пробовал писать на диск) два раза, прога ломается на создании второй базы. Просто этот пример - продолжение Tsb_VirtualColumn и в этой проге 2 раза создаётся временная база.
|
|
|
Ответов - 26
, стр:
1
2
All
[только новые]
|
|
|
| Администратор
|
Пост N: 3990
Зарегистрирован: 23.05.05
|
|
Отправлено: 20.12.20 17:06. Заголовок: Andrey пишет: Делал..
Andrey пишет: цитата: | Делал просто пример под задачу сравнения двух dbf и показ отличий в ТСБ. Думал сделать показ различия строк и колонок цветами, а цвета загнать в массив или во временную базу. |
| У меня в утилите dbedit как раз есть функция сравнения двух dbf, без использования промежуточного массива. Там цикл по первому dbf, сравнение каждой записи со вторым с записью различий в выходной массив. В массив заносятся только различия
|
|
|
|
| постоянный участник
|
Пост N: 3554
Зарегистрирован: 17.02.12
|
|
Отправлено: 20.12.20 18:14. Заголовок: Pasha пишет Там цикл..
Pasha пишет цитата: | Там цикл по первому dbf, сравнение каждой записи со вторым с записью различий в выходной массив. В массив заносятся только различия |
| У Андрея не программа сравнения, а скорее два цветных отчета (таблицы) на одном окне с 6-ю запросами к одной базе, которые результат помещают в новые виртуальные колонки (6 штук можно больше делать), обозначая цветами, в соответствии с данными и алгоритмами, каждой колонки. По виртуальным полям можно фильтровать полученный результат как по одной колонке, так и по всем с получением соответствующих итогов, работая на 2-х таблицах.
|
|
|
|
| постоянный участник
|
Пост N: 6867
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.12.20 20:59. Заголовок: SergKis пишет: У Ан..
SergKis пишет: цитата: | У Андрея не программа сравнения, а скорее два цветных отчета (таблицы) ... |
| Да это точно. Просто нужно юзеру показать различия допустим текущей базы и что было несколько месяцев назад. А то вечно стенания, то данные пропали, то никто данные не трогал, а они другие и т.д. Да и самому понятней становиться когда перед глазами изменения, как в WinMerge.
|
|
|
|
| постоянный участник
|
Пост N: 1602
Зарегистрирован: 27.01.07
|
|
Отправлено: 20.12.20 21:12. Заголовок: Andrey пишет: Ну эт..
Andrey пишет: цитата: | Ну это сложно сделать без массивов. Тем более memio вроде классная штука, только пользоваться её надо научиться. |
| Каждый инструмент имеет ограниченный круг применения. Даже самой дорогой золотой ложкой траншею трудно выкопать. Сломается))
|
|
|
|
| постоянный участник
|
Пост N: 3555
Зарегистрирован: 17.02.12
|
|
Отправлено: 20.12.20 22:03. Заголовок: Andrey пишет Просто ..
Andrey пишет цитата: | Просто нужно юзеру показать различия допустим текущей базы и что было несколько месяцев назад |
| Это частный случай, более общий, на мой взгляд, получение данных за периоды по 6 показателям (можно больше) для сравнения, например прошлый месяц (1 таблица тсб) и текущий (2 таблица тсб), прошлый год и тек. год, кварталы, и т.д. для анализа и сравнения
|
|
|
|
| Администратор
|
Пост N: 3991
Зарегистрирован: 23.05.05
|
|
Отправлено: 21.12.20 08:01. Заголовок: В конце концов, есть..
В конце концов, есть же диспетчер задач. Достаточно оценить, сколько программа берет памяти в спокойном состоянии, пусть это будет 10-20М, и в возбужденном. Если память будет зашкаливать, это значит, что "что-то я делаю не так"
|
|
|
Ответов - 26
, стр:
1
2
All
[только новые]
|
|