Автор | Сообщение |
|
| постоянный участник
|
Пост N: 7161
Зарегистрирован: 12.09.06
|
|
Отправлено: 08.12.21 16:11. Заголовок: Где создаётся временный файл для индекса ?
У юзера прога начала вылетать. Вот с такой ошибкой. Причина банальна оказалась, нет места на системном диске. Как определить какой диск нужен для временного файла под индекс ? Где создаётся временный файл для индекса ? И сколько примерно нужно свободного места под индекс ? Вот такая ошибка: Application Internal Error - J:\MyProject\Dogovor4win.exe Terminated at: 2021-12-06 12:52:48 Info: Harbour MiniGUI Extended Edition 21.10.3 (32-bit) ANSI Неисправимая ошибка 9302: hb_cdxSortWritePage: Write error in temporary file. Called from ORDCREATE(0) Called from INDEXBASE(354) in Source\form_index.prg Called from (b)HB_MACROBLOCK(0) Called from MYINITINDEX(191) in Source\form_index.prg Called from (b)HB_MACROBLOCK(0)
|
|
|
Ответов - 14
[только новые]
|
|
|
| |
Пост N: 7494
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.12.21 21:01. Заголовок: по идее если в MEM: ..
по идее если в MEM: писать то падать не должно , ну если винда не падает от не достатка свободного места на системном диске то и тут не должно теоретически
|
|
|
|
| постоянный участник
|
Пост N: 7162
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.12.21 07:25. Заголовок: Dima пишет: по иде..
Dima пишет: цитата: | по идее если в MEM: писать то падать не должно |
| Нет не МЕМ, обычный драйвер CDX.
|
|
|
|
| Администратор
|
Пост N: 4057
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.12.21 09:34. Заголовок: Andrey пишет: Как о..
Andrey пишет: цитата: | Как определить какой диск нужен для временного файла под индекс ? Где создаётся временный файл для индекса ? |
| Определить можно по переменной окружения TEMP вестимо, и диск соответственно цитата: | И сколько примерно нужно свободного места под индекс ? |
| Для разных индексов разное свободное место, вестимо. Для одних несколько килобайт, для других десятки мегабайт вестимо А бороться с этим не стоит, это не функция программы, а функция системы. Система сама скажет, что исчерпывается свободное место
|
|
|
|
| постоянный участник
|
Пост N: 7163
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.12.21 09:52. Заголовок: Pasha пишет: Систем..
Pasha пишет: цитата: | Система сама скажет, что исчерпывается свободное место |
| Да не говорит ВООБЩЕ ! Или юзера не смотрят на это сообщение, тупо закрывают и всё. А прога на МиниГуи ошибку не выдаёт, а просто закрывается. Хорошо хоть Харбор создаёт файл error.log У юзера одна претензия на всё - программа не работает и опять программист виноват в этом. Базы программы размещены на другом диске, а на системном закончилось место 200 Кб всего было. Справочники нормально про индексировались, а основные базы нет. Прога просто тихо исчезла с экрана...
|
|
|
|
| Администратор
|
Пост N: 4058
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.12.21 09:57. Заголовок: Все равно не стоит б..
Все равно не стоит брать на себя несвойственные функции. А юзеров надо просвещать и воспитывать
|
|
|
|
| |
Пост N: 7495
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.12.21 10:00. Заголовок: Andrey пишет: Нет н..
Andrey пишет: цитата: | Нет не МЕМ, обычный драйвер CDX. |
| ты опять спутал теплое с мягким , ну да ладно....
|
|
|
|
| постоянный участник
|
Пост N: 3973
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.12.21 10:55. Заголовок: Andrey Ставь в само..
Andrey Ставь в самом начале программы, например, так cDirName := GetStartUpFolder()+"\TEMP" hb_SetEnv( "TEMP", cDirName ) IF ! hb_vfDirExists( cDirName ) hb_vfDirMake( cDirName ) ENDIF
|
|
|
|
| постоянный участник
|
Пост N: 7164
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.12.21 11:00. Заголовок: SergKis , СПАСИБО ! ..
SergKis , СПАСИБО !
|
|
|
|
| Администратор
|
Пост N: 4059
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.12.21 11:02. Заголовок: Так при этом весь пр..
Так при этом весь прикладной и системный софт начнет гадить в эту папку, что нехорошо А система все равно упадет при переполнении диска, вместе с программой Надо лечить проблему, удалять мусор
|
|
|
|
| постоянный участник
|
Пост N: 3974
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.12.21 11:13. Заголовок: Pasha пишет Так при ..
Pasha пишет цитата: | Так при этом весь прикладной и системный софт начнет гадить в эту папку, что нехорошо |
| В clipper был вариант с SET TMP=... Как hb с этим (т.к. можно такую переменную делать, если да) ? цитата: | Надо лечить проблему, удалять мусор |
| Удалять из этой TEMP папки всегда можно, например в StartUp, запуская cmd\bat файл или из программы
|
|
|
|
| Администратор
|
Пост N: 4060
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.12.21 11:24. Заголовок: DBFCDX вызывает вина..
DBFCDX вызывает винапишную функцию создания временного файла, так что там не побалуешь, она создаст файл по SET TEMP Надо лечить болезнь, а не симптомы, как говорят врачи
|
|
|
|
|
| постоянный участник
|
Пост N: 7165
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.12.21 12:31. Заголовок: Pasha пишет: Надо л..
Pasha пишет: цитата: | Надо лечить болезнь, а не симптомы, как говорят врачи |
| Тогда написать типа такого: nSizeDrv := hb_DiskSpace( cDisk, HB_DISK_FREE ) IF nSizeDrv < 1000000 cMsg := "Недостаточно дискового пространства для работы программы !;" cMsg += "Программа НЕ сможет нормально работать !;" cMsg += "Обратитесь к вашему системному программисту !;" AlertStop(cMsg) ENDIF И всю ответственность с себя снять.
|
|
|
|
| Администратор
|
Пост N: 4061
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.12.21 13:05. Заголовок: Лучше для верности п..
Лучше для верности проверять и системный, и рабочий диск
|
|
|
|
| постоянный участник
|
Пост N: 3976
Зарегистрирован: 17.02.12
|
|
Отправлено: 09.12.21 13:12. Заголовок: hb_SetEnv( "TEMP..
hb_SetEnv( "TEMP", cDirName ) создает переменную для своего процесса (local area), т.е. для др. программ она не видна, но проверять наличие какого то объема места, не помешает
|
|
|
|