On-line: гостей 0. Всего: 0 [подробнее..]
АвторСообщение
постоянный участник




Пост 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)


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 14 [только новые]


администратор




Пост N: 7494
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 08.12.21 21:01. Заголовок: по идее если в MEM: ..


по идее если в MEM: писать то падать не должно , ну если винда не падает от
не достатка свободного места на системном диске то и тут не должно теоретически

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7162
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.12.21 07:25. Заголовок: Dima пишет: по иде..


Dima пишет:

 цитата:

по идее если в MEM: писать то падать не должно


Нет не МЕМ, обычный драйвер CDX.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 4057
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.12.21 09:34. Заголовок: Andrey пишет: Как о..


Andrey пишет:

 цитата:
Как определить какой диск нужен для временного файла под индекс ?
Где создаётся временный файл для индекса ?



Определить можно по переменной окружения TEMP вестимо, и диск соответственно


 цитата:
И сколько примерно нужно свободного места под индекс ?



Для разных индексов разное свободное место, вестимо. Для одних несколько килобайт, для других десятки мегабайт вестимо
А бороться с этим не стоит, это не функция программы, а функция системы. Система сама скажет, что исчерпывается свободное место

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7163
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.12.21 09:52. Заголовок: Pasha пишет: Систем..


Pasha пишет:

 цитата:
Система сама скажет, что исчерпывается свободное место


Да не говорит ВООБЩЕ !
Или юзера не смотрят на это сообщение, тупо закрывают и всё.

А прога на МиниГуи ошибку не выдаёт, а просто закрывается.
Хорошо хоть Харбор создаёт файл error.log
У юзера одна претензия на всё - программа не работает и опять программист виноват в этом.

Базы программы размещены на другом диске, а на системном закончилось место 200 Кб всего было.
Справочники нормально про индексировались, а основные базы нет.
Прога просто тихо исчезла с экрана...

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 4058
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.12.21 09:57. Заголовок: Все равно не стоит б..


Все равно не стоит брать на себя несвойственные функции. А юзеров надо просвещать и воспитывать

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 7495
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 09.12.21 10:00. Заголовок: Andrey пишет: Нет н..


Andrey пишет:

 цитата:
Нет не МЕМ, обычный драйвер CDX.


ты опять спутал теплое с мягким , ну да ладно....

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 7164
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 09.12.21 11:00. Заголовок: SergKis , СПАСИБО ! ..


SergKis , СПАСИБО !

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 4059
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.12.21 11:02. Заголовок: Так при этом весь пр..


Так при этом весь прикладной и системный софт начнет гадить в эту папку, что нехорошо
А система все равно упадет при переполнении диска, вместе с программой
Надо лечить проблему, удалять мусор

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3974
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.12.21 11:13. Заголовок: Pasha пишет Так при ..


Pasha пишет
 цитата:
Так при этом весь прикладной и системный софт начнет гадить в эту папку, что нехорошо


В clipper был вариант с SET TMP=...
Как hb с этим (т.к. можно такую переменную делать, если да) ?

 цитата:
Надо лечить проблему, удалять мусор


Удалять из этой TEMP папки всегда можно, например в StartUp, запуская cmd\bat файл или из программы

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 4060
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.12.21 11:24. Заголовок: DBFCDX вызывает вина..


DBFCDX вызывает винапишную функцию создания временного файла, так что там не побалуешь, она создаст файл по SET TEMP
Надо лечить болезнь, а не симптомы, как говорят врачи

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост 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

И всю ответственность с себя снять.

Спасибо: 0 
ПрофильЦитата Ответить
Администратор




Пост N: 4061
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 09.12.21 13:05. Заголовок: Лучше для верности п..


Лучше для верности проверять и системный, и рабочий диск

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




Пост N: 3976
Зарегистрирован: 17.02.12
ссылка на сообщение  Отправлено: 09.12.21 13:12. Заголовок: hb_SetEnv( "TEMP..


hb_SetEnv( "TEMP", cDirName )
создает переменную для своего процесса (local area), т.е. для др. программ она не видна, но проверять наличие какого то объема места, не помешает

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 23
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет