Загрузка данных в memory file вместо Queue.
Рабочие станции под управлением windows 7, 8, - все нормально + 3 под windows 10.
До трех дней и с ними все было нормально. Я думаю, там было обновление Windowsa, потому что проблемы появились во всех трех в то же время /они находятся в разных городах/.
При запуске программа зависает и windows предлагает только рестарт.
Первый после рестарт работает нормально, второй не запускался, после новая установка windowsа работает нормально.
На третьем после переустановки драйвера ODBC, все данные загружаются, но memory файлы потеряли индексы и могут быть прочитаны только по порядку записей.
Обработка данных довольно просто, но теперь придется читать все записи дважды, чтобы получить отчет.
Код: Выделить всё
obmwed FILE,DRIVER('MEMORY','/THREADEDCONTENT'),PRE(obm),BINDABLE,CREATE,THREAD
PRIMARY KEY(obm:uidrec,obm:pn),NOCASE,PRIMARY
pdt KEY(obm:prihod,obm:data1,obm:time1),DUP,NOCASE
....
clear(obm:record)
!obm:prihod=0;obm:data1=loc:d1;obm:time1=100;set(obm:pdt,obm:pdt)
set(obmwed)
loop
if access:obmwed.TryNext() then break.
if obm:prihod=0
do gl_data
else
!break
. .
После новая установка windowsа наверно будет работать нормально, но уже два дня, пытаясь найти проблему и не удалось. Если у вас есть какие-либо идеи, я был бы очень благодарен.