| Автор | Сообщение |
|
|
| постоянный участник
|
Пост N: 6303
Зарегистрирован: 12.09.06
|
|
Отправлено: 20.06.19 18:33. Заголовок: Вылет программы по DOS Error 38 ?
Всем привет. На новом компе постоянно падает прога ! Помогите пожалуйста разобраться ? Система: Operating system...: Windows 10 10.0 MiniGUI version....: Harbour MiniGUI Extended Edition 19.04 (32-bit) Harbour version....: Harbour 3.2.0dev (r1904111533) Harbour built on...: Apr 11 2019 19:43:19 C/C++ compiler.....: Borland C++ 5.5.1 (32-bit) Multi Threading....: YES VM Optimization....: YES Лог ошибок в ErrorLog.htm Date: 05.06.19 Time: 17:31:57 Application: C:\ABONENT\Abonent2win.exe [Версия 4.79.0603] Time from start: 0 days 7 hours 29 mins 39 secs Error DBFCDX/1010 Ошибка чтения: \\SERVER\ABONENT\COMMON\NETOPER.DBF (DOS Error 38) --------------------------------- Stack Trace --------------------------------- Called from DBSKIP(0) Called from OPERATUSERS2(292) in module: Source\main_wdbf.prg Called from (b)MAIN(270) in module: Source\main.prg Called from _DOCONTROLEVENTPROCEDURE(1865) in module: h_windows.prg Called from EVENTS(1583) in module: h_events.prg Called from MYEVENTSHANDLER(1233) in module: Source\main.prg Called from DOMESSAGELOOP(0) Called from _ACTIVATEWINDOW(1499) in module: h_windows.prg Called from MAIN(287) in module: Source\main.prg Date: 05.06.2019 Time: 18:08:46 Application: C:\ABONENT\Abonent2win.exe [Версия 4.79.0603] Time from start: 0 days 0 hours 36 mins 28 secs Error DBFCDX/1010 Ошибка чтения: \\SERVER\ABONENT\COMMON\NETOPER.DBF (DOS Error 38) --------------------------------- Stack Trace --------------------------------- Called from DBSKIP(0) Called from OPERATUSERS2(292) in module: Source\main_wdbf.prg Called from (b)MAIN(270) in module: Source\main.prg Called from _DOCONTROLEVENTPROCEDURE(1865) in module: h_windows.prg Called from EVENTS(1583) in module: h_events.prg Called from MYEVENTSHANDLER(1233) in module: Source\main.prg Called from DOMESSAGELOOP(0) Called from _ACTIVATEWINDOW(1499) in module: h_windows.prg Called from MAIN(287) in module: Source\main.prg Date: 05.06.2019 Time: 18:08:59 Application: C:\ABONENT\Abonent2win.exe [Версия 4.79.0603] Time from start: 0 days 0 hours 36 mins 41 secs Error DBFCDX/1010 Ошибка чтения: \\SERVER\ABONENT\COMMON\NETOPER.DBF (DOS Error 38) --------------------------------- Stack Trace --------------------------------- Called from DBSKIP(0) Called from DBFLOG2EXIT(185) in module: Source\main_wdbf.prg Called from MYEXITERROR(882) in module: Source\main.prg Called from SHOWERROR(200) in module: Source\ErrorSys.prg Called from DEFERROR(139) in module: Source\ErrorSys.prg Called from (b)ERRORSYS(65) in module: Source\ErrorSys.prg Called from DBSKIP(0) Called from OPERATUSERS2(292) in module: Source\main_wdbf.prg Called from (b)MAIN(270) in module: Source\main.prg Called from _DOCONTROLEVENTPROCEDURE(1865) in module: h_windows.prg Called from EVENTS(1583) in module: h_events.prg Called from MYEVENTSHANDLER(1233) in module: Source\main.prg Called from DOMESSAGELOOP(0) Called from _ACTIVATEWINDOW(1499) in module: h_windows.prg Called from MAIN(287) in module: Source\main.prg
|
 |

|
|
Ответов - 27
, стр:
1
2
All
[только новые]
|
|
|
|
| постоянный участник
|
Пост N: 4884
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.05.26 10:09. Заголовок: Dima пишет можно сде..
Dima пишет | цитата: | | можно сделать при первом открытии hb_dbDetach |
| Думаю, для события Timer это не подходит, т.к. предполагается что идет работа с одним alias\area открытой таблицы, т.е. перемещения по записям могут быть одновременно сделаны. | цитата: | | не дергать её постоянно на открытие/закрытие |
| Открытие/закрытие таблиц с SET AUTOPEN ON, позволяет, часто, простыми командами поддерживать актуальный буфер записей таблицы, без доп. перечитываний записи SKIPами и др. командами перемещения
|
 |

|
|
|
| |
Пост N: 8292
Зарегистрирован: 17.05.05
|
|
Отправлено: 17.05.26 12:54. Заголовок: SergKis пишет: Откр..
SergKis пишет: | цитата: | | Открытие/закрытие таблиц с SET AUTOPEN ON, позволяет, часто, простыми командами поддерживать актуальный буфер записей таблицы, без доп. перечитываний записи SKIPами и др. командами перемещения |
| думаю ты переоценил чуть... SET AUTOPEN ON | off | (<lOnOff>) The option toggles if a structural index file is automatically opened with the USE command. With ON or .T. (true), an index file is automatically opened. OFF or .F. (false) switch this mode off. а так нормально работает Dbskip(0) 
|
 |

|
|
|
| постоянный участник
|
Пост N: 4885
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.05.26 14:19. Заголовок: Dima SET AUTOPEN ON..
Dima SET AUTOPEN ON ... USE ... A1 SHARED USE ... A2 SHARED SET RELATION TO ... INTO A1 DO WHILE ... или BROWSE\TBROWSE ... в Timer USE ... A3 SHARED // A1 ... USE ... A4 SHARED // A2 ... DbSeletArea('A3') ; USE DbSeletArea('A4') ; USE будет нормально работать | цитата: | | а так нормально работает Dbskip(0) |
| все команды перемещения по alias перечитывают записи (для Leto Dbskip(0) не работает, надо DbGoto(nRec) применять), у нас локальная база и Timer, по мне, без синхронизации перемещений по записям одного alias\area делать нельзя, т.е. USE ... A1 SHARED USE ... A2 SHARED SET RELATION TO ... INTO A1 DO WHILE ... или BROWSE\TBROWSE в состоянии листания ... в Timer ... какие бы действия не делали, по мне, все стремно ('A2')->dbGoto(...) ...
|
 |

|
|
|
| |
Пост N: 2038
Зарегистрирован: 20.02.11
|
|
Отправлено: 17.05.26 16:17. Заголовок: Джентльмены, упустил..
Джентльмены, упустил нить, откуда взялась реляция и вроде как таймер это не поток а "прерывание" с возвратом в точку вызова по окончании и работает без включения MT директив. Скорее проблема в том , что процедура таймера не восстанавливает состояние рабочей области в соответствии с моментом вызова. Из контекста следует, что таймер может прервать любую текущую операцию и изменить состояние области , что ставит под сомнение , корректность прерванной операции при возврате. При выходе с таймера нужно восстановить состояние области , или открравать в таймере базу в шаре , закрывая на выходе. Если поток, то достаточно в нем открыть один раз до цикла while .t. с тем же алиасом что и в основном процессе. В самом цикле , скажем, раз в 2 секунды что то скипать по базе. В потоках использую постоянно, никаких сбоев, единственный нюанс у ads, при подключении к другой базе в потоке. Связано с необходимостью восстановления хендла ads у предыдущего подключения.
|
 |

|
|
|
| |
Пост N: 8293
Зарегистрирован: 17.05.05
|
|
Отправлено: 17.05.26 17:28. Заголовок: SergKis пишет: DbSe..
SergKis пишет: | цитата: | DbSeletArea('A3') ; USE DbSeletArea('A4') ; USE будет нормально работать |
| согласен, возможно мы друг друга не поняли....пенсионеры ёлки оба Haz пишет: | цитата: | | Если поток, то достаточно в нем открыть один раз до цикла while .t. с тем же алиасом |
| все верно Мы не учли джентльмены с каким RDD работает джентльмен который получил косяк при опросе базы... а то началось ADS , LETO 
|
 |

|
|
|
| постоянный участник
|
Пост N: 4886
Зарегистрирован: 17.02.12
|
|
Отправлено: 17.05.26 18:27. Заголовок: subbota пишет при ра..
subbota пишет | цитата: | при работе с локальным диском при обращении к открытому dbf файлу по таймеру и выглядела примерно так: DBFNTX/1010 Read error: ..\Lager_d\putev05.ntx DOS (38) Область PUTEV запись 7458 |
|
|
 |

|
|
|
| |
Пост N: 8294
Зарегистрирован: 17.05.05
|
|
Отправлено: 17.05.26 18:32. Заголовок: SergKis пишет: DBFN..
SergKis пишет: | цитата: | | DBFNTX/1010 Read error: ..\Lager_d\putev05.ntx |
| ты прав, я не заметил ps вообще причин тут может быть много в том числе "железных".... или например место на диске кончилось для записи..было у меня такое на одном рабочем месте.
|
 |

|
|
Ответов - 27
, стр:
1
2
All
[только новые]
|
|