Что значит stream read error

I'm getting this error message under heavy load. Here is code abstract and message from my error log. I tried everything I could think of. Any suggestion would be greatly appreciated. Procedure

I’m getting this error message under heavy load. Here is code abstract and message from my error log.
I tried everything I could think of. Any suggestion would be greatly appreciated.

Procedure tCacheInMemory.StreamValue(Name: String; IgnoreCase: Boolean; Var Stream:     TStringStream);
Var
  i: Integer;
Begin
  i := 0;
  Try
    If Not active Then
      exit;
    arrayLock.BeginRead;
    Try
      i := Search(Name);
      If i > -1 Then Begin
        If fItems[i].value = Nil Then
          exit;
        fItems[i].value.Position := 0;
        Stream.Position := 0;
        Stream.CopyFrom(fItems[i].value, fItems[i].value.Size);
      End;
    Finally
      arrayLock.EndRead;
    End;
  Except { ...execution jumps to here }
    On E: Exception Do Begin
      x.xLogError('LogErrorCacheInMemory.txt', 'StreamValue:' + E.Message + ' ItemsCount:' + IntToStr( High(fItems)) + 'Memory:' + IntToStr(x.GetMemoryInfoMemory) + endLn + 'StreamSize : ' + IntToStr(fItems[i].value.Size) + ' i=' + IntToStr(i) + 'Name: ' + Name);
      Clear;
    End
  End;
End;

Log Entries:

 3/10/2011 10:52:59 AM: StreamValue:Stream read error ItemsCount:7562 Memory:240816
   StreamSize : 43 i=7506 Name: \xxxxxxxxWebRoot\images1x1.gif
3/10/2011 12:39:14 PM: StreamValue:Stream read error ItemsCount:10172 Memory:345808
   StreamSize : 849 i=10108 Name: \xxxxxxxxWebRoot\cssscreen.add.css
3/10/2011 3:45:29 PM: StreamValue:Stream read error ItemsCount:11200 Memory:425464
   StreamSize : 3743 i=11198 Name: \xxxxxxxxWebRoot\JSArtWeb.js

P.S.

arrayLock: TMultiReadExclusiveWriteSynchronizer;
 fItems: Array Of rCache;
Type
  rCache = Record
    Name: String;
    value: TStringStream;
    expired: TDateTime;
  End;

And calling function:

Function tCacheInMemory.CacheCheck(cName: String; Out BlobStream: TStringStream):   Boolean;
Begin
Result := False;
   If Not IfUseCache Then
      exit;
    BlobStream.SetSize(0);
    BlobStream.Size := 0;
    StreamValue(trim(cName), True, BlobStream);
    If BlobStream.Size > 0 Then
    Result := True;
End;

`

Wolf's user avatar

Wolf

9,4947 gold badges62 silver badges105 bronze badges

asked Mar 15, 2011 at 21:34

Yuriy's user avatar

6

You’re not using correct locking. You’re acquiring a read lock on the array of cache entries, but once you find the item you want, you modify it. First, you explicitly modify it by assigning its Position property, and then you implicitly modify it by reading from it, which modifies its Position property again. When other code attempts to read from that same cache item, you’ll have interference. If the source stream’s Position property changes between the time the destination stream calculates how many bytes are available and the time it actually requests to read those bytes, you’ll get a stream-read error.

I have a couple pieces of advice related to this:

  • Don’t use streams as a storage device in the first place. You’re apparently holding the contents of files. You’re not going to change those, so you don’t need a data structure designed for making sequential changes. Instead, just store the data in simple arrays of bytes: TBytes. (Also, use of TStringStream in particular introduces confusion over whether those strings’ encodings are important. A simple file cache shouldn’t be concerned with string encodings at all. If you must use a stream, use a content-agnostic class like TMemoryStream.)
  • Don’t quell an exception that you haven’t actually handled. In this code, you’re catching all exception types, logging some information, clearing the cache, and then proceeding as though everything is normal. But you haven’t done anything to resolve the problem that triggered the exception, so everything is not normal. Since you’re not really handling the exception, you need to make sure it propagates to the caller. Call raise after to call Clear. (And when you log the exception, make sure you log the exception’s ClassName value as well as its message.)

answered Mar 15, 2011 at 23:19

Rob Kennedy's user avatar

Rob KennedyRob Kennedy

161k21 gold badges276 silver badges463 bronze badges

2

It looks like something external is blocking your stream files.

You could try to use Process Monitor to see what blocks it.

Another thing you can try is to open the stream in read-deny-write mode (please show us how you open the stream).

Something like this:

Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite) ;

Edit 1: Disregard the strike through part: you are using TStringStream.
I’ll keep the answer just in case anyone ever gets this kind of error when using TFileStream.

Edit 2: Yuriy posted this interesting addendum, but I’m not sure it will work, as the BlobStream is not initialized, just like Robert Love suspected:

Function TCacheInMemory.CacheCheck(cName: String; Out BlobStream: TStringStream): Boolean; 
Begin 
  Result := False; 
  Try 
    If Not IfUseCache Then 
      exit; 
    BlobStream.SetSize(0);  
    BlobStream.Size := 0;  
    StreamValue(trim(cName), True, BlobStream);  
    If BlobStream.Size > 0 Then  
      Result := True;  
  Except  
    On E: Exception Do  
    Begin  
      x.xLogError('LogErrorCacheInMemory.txt', 'CheckCacheOutStream:' + E.Message + ' ItemsCount:' + IntToStr( High(fItems)) + 'Memory:' + IntToStr(x.GetMemoryInfoMemory));  
    End;  
  End;  
End; 

—jeroen

Community's user avatar

answered Mar 15, 2011 at 21:55

Jeroen Wiert Pluimers's user avatar

5

I’m getting this error message under heavy load. Here is code abstract and message from my error log.
I tried everything I could think of. Any suggestion would be greatly appreciated.

Procedure tCacheInMemory.StreamValue(Name: String; IgnoreCase: Boolean; Var Stream:     TStringStream);
Var
  i: Integer;
Begin
  i := 0;
  Try
    If Not active Then
      exit;
    arrayLock.BeginRead;
    Try
      i := Search(Name);
      If i > -1 Then Begin
        If fItems[i].value = Nil Then
          exit;
        fItems[i].value.Position := 0;
        Stream.Position := 0;
        Stream.CopyFrom(fItems[i].value, fItems[i].value.Size);
      End;
    Finally
      arrayLock.EndRead;
    End;
  Except { ...execution jumps to here }
    On E: Exception Do Begin
      x.xLogError('LogErrorCacheInMemory.txt', 'StreamValue:' + E.Message + ' ItemsCount:' + IntToStr( High(fItems)) + 'Memory:' + IntToStr(x.GetMemoryInfoMemory) + endLn + 'StreamSize : ' + IntToStr(fItems[i].value.Size) + ' i=' + IntToStr(i) + 'Name: ' + Name);
      Clear;
    End
  End;
End;

Log Entries:

 3/10/2011 10:52:59 AM: StreamValue:Stream read error ItemsCount:7562 Memory:240816
   StreamSize : 43 i=7506 Name: \xxxxxxxxWebRoot\images1x1.gif
3/10/2011 12:39:14 PM: StreamValue:Stream read error ItemsCount:10172 Memory:345808
   StreamSize : 849 i=10108 Name: \xxxxxxxxWebRoot\cssscreen.add.css
3/10/2011 3:45:29 PM: StreamValue:Stream read error ItemsCount:11200 Memory:425464
   StreamSize : 3743 i=11198 Name: \xxxxxxxxWebRoot\JSArtWeb.js

P.S.

arrayLock: TMultiReadExclusiveWriteSynchronizer;
 fItems: Array Of rCache;
Type
  rCache = Record
    Name: String;
    value: TStringStream;
    expired: TDateTime;
  End;

And calling function:

Function tCacheInMemory.CacheCheck(cName: String; Out BlobStream: TStringStream):   Boolean;
Begin
Result := False;
   If Not IfUseCache Then
      exit;
    BlobStream.SetSize(0);
    BlobStream.Size := 0;
    StreamValue(trim(cName), True, BlobStream);
    If BlobStream.Size > 0 Then
    Result := True;
End;

`

Wolf's user avatar

Wolf

9,4947 gold badges62 silver badges105 bronze badges

asked Mar 15, 2011 at 21:34

Yuriy's user avatar

6

You’re not using correct locking. You’re acquiring a read lock on the array of cache entries, but once you find the item you want, you modify it. First, you explicitly modify it by assigning its Position property, and then you implicitly modify it by reading from it, which modifies its Position property again. When other code attempts to read from that same cache item, you’ll have interference. If the source stream’s Position property changes between the time the destination stream calculates how many bytes are available and the time it actually requests to read those bytes, you’ll get a stream-read error.

I have a couple pieces of advice related to this:

  • Don’t use streams as a storage device in the first place. You’re apparently holding the contents of files. You’re not going to change those, so you don’t need a data structure designed for making sequential changes. Instead, just store the data in simple arrays of bytes: TBytes. (Also, use of TStringStream in particular introduces confusion over whether those strings’ encodings are important. A simple file cache shouldn’t be concerned with string encodings at all. If you must use a stream, use a content-agnostic class like TMemoryStream.)
  • Don’t quell an exception that you haven’t actually handled. In this code, you’re catching all exception types, logging some information, clearing the cache, and then proceeding as though everything is normal. But you haven’t done anything to resolve the problem that triggered the exception, so everything is not normal. Since you’re not really handling the exception, you need to make sure it propagates to the caller. Call raise after to call Clear. (And when you log the exception, make sure you log the exception’s ClassName value as well as its message.)

answered Mar 15, 2011 at 23:19

Rob Kennedy's user avatar

Rob KennedyRob Kennedy

161k21 gold badges276 silver badges463 bronze badges

2

It looks like something external is blocking your stream files.

You could try to use Process Monitor to see what blocks it.

Another thing you can try is to open the stream in read-deny-write mode (please show us how you open the stream).

Something like this:

Stream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite) ;

Edit 1: Disregard the strike through part: you are using TStringStream.
I’ll keep the answer just in case anyone ever gets this kind of error when using TFileStream.

Edit 2: Yuriy posted this interesting addendum, but I’m not sure it will work, as the BlobStream is not initialized, just like Robert Love suspected:

Function TCacheInMemory.CacheCheck(cName: String; Out BlobStream: TStringStream): Boolean; 
Begin 
  Result := False; 
  Try 
    If Not IfUseCache Then 
      exit; 
    BlobStream.SetSize(0);  
    BlobStream.Size := 0;  
    StreamValue(trim(cName), True, BlobStream);  
    If BlobStream.Size > 0 Then  
      Result := True;  
  Except  
    On E: Exception Do  
    Begin  
      x.xLogError('LogErrorCacheInMemory.txt', 'CheckCacheOutStream:' + E.Message + ' ItemsCount:' + IntToStr( High(fItems)) + 'Memory:' + IntToStr(x.GetMemoryInfoMemory));  
    End;  
  End;  
End; 

—jeroen

Community's user avatar

answered Mar 15, 2011 at 21:55

Jeroen Wiert Pluimers's user avatar

5

Ошибка Stream Read Error возникает, когда серверу приложений ЛОЦМАН не достаточно памяти для того, чтобы вернуть все объекты в базу данных.
Если после возникновения ошибки открыть диспетчер задач, то можно увидеть, что скорее всего использованы все доступные ресурсы оперативной и виртуальной памяти. Проблема скорее системная.

Сервер приложений ЛОЦМАН:PLM не ограничивает размер сохраняемого файла.
Существует ограничение ADO/OLEDB (интерфейс MS SQL Server): при работе с файлами требуется

НЕПРЕРЫВНЫЙ БЛОК ПАМЯТИ РАЗМЕРА СООТВЕТСТВУЮЩЕГО ФАЙЛУ

 , который не всегда доступен в системе (даже небольшого размера) — это зависит от степени фрагментированности оперативной памяти.

При использовании Файлового архива это ограничение не действует,
В СУБД Oracle описанная проблема не возникает.

В том случае, если ошибка возникает при наличии файлового архива, в первую очередь необходимо проверить наличие свободного места в архиве. 

Свободное место, доступное для файлового архива указано в ЦУК:
Файловые архивы — [имя файлового архива] справа в информационной области.
Объем памяти, свободный в архиве, и объем памяти доступный на ресурсе где расположен архив не одно и то же!
Так, под архив может быть выделено 50Гб, а на диске свободно 500Гб.
Архив сможет использовать только выделенные ему 50Гб, не зависимо от того, сколько памяти доступно на диске.

Например, в архиве доступно 0,008 Мб, при сохранении файла объемом 30Мб возникает ошибка
Out of memory, Error creating variant or safe array.
Необходимо открыть свойства файлового архива и увеличить максимальный размер архива, в зависимости от потребностей.

 

Рекомендации по избежанию проблемы:

  1. Используйте файловый архив.  
    Перенесите файлы из базы данных в него.  
    Для хранения большого объема файлов лучше использовать файловый архив, а не таблицы базы данных.  
    Подробнее о создании и о работе с файловыми архивами описано в справке на ЦУК/ЛОЦМАН Администратор.
  2. Старайтесь чаще сохранять информацию в БД малыми порциями, тогда вероятность появления упомянутой ошибки снизится.
  3. Установка дополнительных модулей оперативной памяти на машине, где работает сервер приложений ЛОЦМАН.

Тема: Ошибка при сохранении архива ФН в формате *.fnc ( «Stream read error» в FN RUN )  (Прочитано 7720 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Доброго времени суток!
Временами сталкиваюсь с проблемой чтения архива ФН, которые отрабатывают свой срок эксплуатации на автономках. Так как в ЛК НИ без приложения архива перерегистрировать ККТ нет возможности, оправляем клиентов в налоговую с ФН-ом, и там почему-то перерегистрируют без проблем.
Причём, ФН каждый раз исправный, все документы отправлены в ОФД, архив закрыт (фаза жизни 15). Через FN RUN все документы прекрасно считываются для сохранения в формате *.csv . Но ни одна программа (FN Arc, FNtransfer, FN RUN) не может сохранить архив в формате *.fnc . FN RUN при прочтении пишет «Stream read error», а если выгрузить архив через FN Arc и прочитать через ConvertFNC, то вместо каждого документа:
9999 Сообщение об ошибке
   Ошибка ФН, код525
Может кто сталкивался, как победить?
Так как такая история только на автономках, предполагаю, что это как-то связано с каким-то полем/полями из этих: наименование ОФД, адрес проверки чеков, адрес отправителя чеков.
Влияет ли на ФН в автономке то, что в них забито? Или то, что они пустые?


Записан

Руки при пайке дрожат от сосредоточения, а не от того, что подумалось в первую очередь…


В новых версиях FN_RUN есть конвертер из arh в fnc. Сохранаешь архив в формате  arh а затем делаешь конвертацию в fnc.


Записан

Это сообщение считают полезным: Kasmech


Временами сталкиваюсь с проблемой чтения архива ФН, которые отрабатывают свой срок эксплуатации на автономках.
все документы отправлены в ОФД, архив закрыт (фаза жизни 15)
Так как такая история только на автономках,

Это как? В автономе и отправлены в ОФД? :o


Записан


Доброго времени суток!
Временами сталкиваюсь с проблемой чтения архива ФН, которые отрабатывают свой срок эксплуатации на автономках. Так как в ЛК НИ без приложения архива перерегистрировать ККТ нет возможности, оправляем клиентов в налоговую с ФН-ом, и там почему-то перерегистрируют без проблем.
Причём, ФН каждый раз исправный, все документы отправлены в ОФД, архив закрыт (фаза жизни 15). Через FN RUN все документы прекрасно считываются для сохранения в формате *.csv . Но ни одна программа (FN Arc, FNtransfer, FN RUN) не может сохранить архив в формате *.fnc . FN RUN при прочтении пишет «Stream read error», а если выгрузить архив через FN Arc и прочитать через ConvertFNC, то вместо каждого документа:
9999 Сообщение об ошибке
   Ошибка ФН, код525
Может кто сталкивался, как победить?
Так как такая история только на автономках, предполагаю, что это как-то связано с каким-то полем/полями из этих: наименование ОФД, адрес проверки чеков, адрес отправителя чеков.
Влияет ли на ФН в автономке то, что в них забито? Или то, что они пустые?

Воткни ФН в фр от АТОЛ и прочитай архив атоловской утилитой


Записан

«Боже мой, да всем насрать!» ©


В новых версиях FN_RUN есть конвертер из arh в fnc

Спасибо! Вот это я и искал. Попробую на следующем проблемном.


Записан

Руки при пайке дрожат от сосредоточения, а не от того, что подумалось в первую очередь…


Это как? В автономе и отправлены в ОФД? :o

Ну, не придирайтесь уж :D Я к тому, что фаза жизни 15 а не 7.


Записан

Руки при пайке дрожат от сосредоточения, а не от того, что подумалось в первую очередь…


Воткни ФН в фр от АТОЛ и прочитай архив атоловской утилитой

Тоже неплохо. Только вот вопрос: по времени чтения как быстро будет? Она по одному доку запрашивает или страницами (если я правильно понимаю, речь идёт об «FNArchiveReader»)?


Записан

Руки при пайке дрожат от сосредоточения, а не от того, что подумалось в первую очередь…


Воткни ФН в фр от АТОЛ и прочитай архив атоловской утилитой

Тоже неплохо. Только вот вопрос: по времени чтения как быстро будет? Она по одному доку запрашивает или страницами (если я правильно понимаю, речь идёт об «FNArchiveReader»)?

Быстро, минуты 3


Записан

«Боже мой, да всем насрать!» ©

Это сообщение считают полезным: Kasmech


У меня другая проблема.
Раньше всё сохранялось нормально. А месяца два назад непонятно с чего при попытке сохранения в
формат fnc, выдается ошибка «дд.мм.гггг чч:мм is not valid date and time». дата и время указывается
открытия первой смены. Пробовал на трех компьютерах, результат одинаковый.
В формат arh сохраняет, но при попытке преобразования в fnc, та же ошибка.
Windows 7 x64.


Записан


У меня другая проблема.
Раньше всё сохранялось нормально. А месяца два назад непонятно с чего при попытке сохранения в
формат fnc, выдается ошибка «дд.мм.гггг чч:мм is not valid date and time». дата и время указывается
открытия первой смены. Пробовал на трех компьютерах, результат одинаковый.
В формат arh сохраняет, но при попытке преобразования в fnc, та же ошибка.
Windows 7 x64.

Через ФР АТОЛ попробуйте считать. Софтиной от АТОЛ.


Записан

«Боже мой, да всем насрать!» ©


Подключил к АТОЛУ. Касса написала «ФН не из этой ККТ» и устроила дискотеку. В Атоловской утилите все кнопки неактивны.  Попробовал считать утилитой от «Атлас Карт» (благо что чеков немного). Утилита показала выгрузку архива ФН, но в конце выдала «Фатальная ошибка ФН — Успешное выполнение». При попытке просмотреть — всё чисто.


Записан


Бумньон


Записан



Записан

Это сообщение считают полезным: vvm


Воскрешаю, т.к. столкнулся и нигде не нашел решения.
Оказалось всё предельно просто: вместо модных утилит надо использовать FNCnt от производителя (можно скачать на сайте Инвенты в разделе Техническая поддержка).
http://support.inventa.su/confluence/pages/viewpage.action?pageId=2326558

У конторы с миллиардными оборотами не нашлось денег ни на домен RU, ни на бесплатный SSL


Записан

«Боже мой, да всем насрать!» ©


Бумньон


Записан



Записан


Новая версия FNArc не помогла, видимо сначала была касса автономная, а потом стала с ОФД. Поэтому файл не выгружается


Записан


Как писали выше, когда в ошибку падал FN_RUN использовал Атол с их программой выгрузки…
И да опять же пишут верно, ККТ пишет ФН не из той ККТ и устаривает дискотеку.. ну и что ? берёте и дальше выгружаете под музыку :)
Примечание: неактивные кнопки внутри программы выгрузки от АТОЛ говорит о том, что не установлен НУЖНЫЙ ей драйвер…(старые программы требуют 8 версию драйвера)


Записан


  • Форум vvm »
  • Главная категория »
  • Онлайн кассы »
  • ФН / МГМ »
  • Ошибка при сохранении архива ФН в формате *.fnc ( «Stream read error» в FN RUN )

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

#1 29 марта 2021 09:58:31

  • Dyaka
  • Участник
  • Неактивен
  • На форуме с 29 марта 2021
  • Сообщений: 5

Тема: Ошибка Stream Read Error

Добрый день! Не нашел решения проблемы по данному вопросу. При входе в программу и выполнении любого действия у пользователя вылетает ошибка Stream read error. У остальных пользователей все нормально. Переустановка не помогает.

#2 Ответ от Олег Зырянов 29 марта 2021 10:07:56

  • Олег Зырянов
  • Технический руководитель
  • Неактивен
  • Откуда: Новосибирск
  • На форуме с 10 декабря 2008
  • Сообщений: 4,183

Re: Ошибка Stream Read Error

Здравствуйте! Запустите конфигурацию TechnologiCS с ключом /skipreg или удалите вручную *.cfg файлы https://help.technologics.ru/7.9/TCSHelp/_876.htm

Больше всего похожена это. Хотя. Что значит при выполнении любого действия? Программа то работает в итоге?

#3 Ответ от Dyaka 29 марта 2021 10:58:21

  • Dyaka
  • Участник
  • Неактивен
  • На форуме с 29 марта 2021
  • Сообщений: 5

Re: Ошибка Stream Read Error

Олег Зырянов пишет:

Здравствуйте! Запустите конфигурацию TechnologiCS с ключом /skipreg или удалите вручную *.cfg файлы https://help.technologics.ru/7.9/TCSHelp/_876.htm

Больше всего похожена это. Хотя. Что значит при выполнении любого действия? Программа то работает в итоге?

Работает, пользователь логинится, но после каждого действия вылетает данная ошибка. Запуск с ключом и удаление .cfg файлов не помогло

#4 Ответ от Олег Зырянов 29 марта 2021 11:06:08

  • Олег Зырянов
  • Технический руководитель
  • Неактивен
  • Откуда: Новосибирск
  • На форуме с 10 декабря 2008
  • Сообщений: 4,183

Re: Ошибка Stream Read Error

А можно точную версию TechnologiCS , и более подробное описание того что просходит, послеlовательно по шагам.
В идеале чтобы шаги эти повторялись, а не были случайными. То есть делаем — ошибка. Еще раз делаем — та же ошибка. Перезапустили TCS, повторяем -снова ошибка эта.

#5 Ответ от Dyaka 29 марта 2021 11:17:06

  • Dyaka
  • Участник
  • Неактивен
  • На форуме с 29 марта 2021
  • Сообщений: 5

Re: Ошибка Stream Read Error

Олег Зырянов пишет:

А можно точную версию TechnologiCS , и более подробное описание того что просходит, послеlовательно по шагам.
В идеале чтобы шаги эти повторялись, а не были случайными. То есть делаем — ошибка. Еще раз делаем — та же ошибка. Перезапустили TCS, повторяем -снова ошибка эта.

У пользователя версия 5.7.0.0. Я не большой эксперт этой программы, опишу, как могу. Пользователь логинится, программа загружается, пишет о новых сообщениях, закрываем окно, и вылетает окошко с ошибкой Stream read error. Пользователь его закрывает, делает любой отчет, макрос, ошибка снова вылетает, но действие выполняется. В целом, все работает, просто после каждого действия пользователя с момента входа вылетает окошко с ошибкой.

#6 Ответ от Олег Зырянов 29 марта 2021 11:28:08

  • Олег Зырянов
  • Технический руководитель
  • Неактивен
  • Откуда: Новосибирск
  • На форуме с 10 декабря 2008
  • Сообщений: 4,183

Re: Ошибка Stream Read Error

Можно еще скриншот ошибки.

И… Если пользователье ничего не делает,  просто откроет справочник на просмотр, ну и допустим просто иногда открывает форму редактирования, ничего не меняет, закрывает (то есть режим просмотр). Ошибка будет?

#7 Ответ от Dyaka 29 марта 2021 11:39:40 (изменено: , 29 марта 2021 11:39:40)

  • Dyaka
  • Участник
  • Неактивен
  • На форуме с 29 марта 2021
  • Сообщений: 5

Re: Ошибка Stream Read Error

Олег Зырянов пишет:

Можно еще скриншот ошибки.

И… Если пользователье ничего не делает,  просто откроет справочник на просмотр, ну и допустим просто иногда открывает форму редактирования, ничего не меняет, закрывает (то есть режим просмотр). Ошибка будет?

Извиняюсь за качество, как прислали мне. После закрытия окна ошибки и простого просмотра форм ошибка не возникает. Когда пользователь подписывает какой-то документ она снова появляется. При этом документ подписывается (последнее со слов пользователя).

Олег Зырянов пишет:

Можно еще скриншот ошибки.

И… Если пользователье ничего не делает,  просто откроет справочник на просмотр, ну и допустим просто иногда открывает форму редактирования, ничего не меняет, закрывает (то есть режим просмотр). Ошибка будет?

Post’s attachments

image0011.jpg
image0011.jpg 27.33 Кб, 6 скачиваний с 2021-03-29 

You don’t have the permssions to download the attachments of this post.

#8 Ответ от Олег Зырянов 30 марта 2021 08:11:54

  • Олег Зырянов
  • Технический руководитель
  • Неактивен
  • Откуда: Новосибирск
  • На форуме с 10 декабря 2008
  • Сообщений: 4,183

Re: Ошибка Stream Read Error

А скажите еще полную версию. До билда.

В 5.7 была нехорошая ошибка,правда вряд ли она бы так проявлялась, но все же.

#9 Ответ от Dyaka 30 марта 2021 14:29:37

  • Dyaka
  • Участник
  • Неактивен
  • На форуме с 29 марта 2021
  • Сообщений: 5

Re: Ошибка Stream Read Error

Олег Зырянов пишет:

А скажите еще полную версию. До билда.

В 5.7 была нехорошая ошибка,правда вряд ли она бы так проявлялась, но все же.

10968

#10 Ответ от Олег Зырянов 30 марта 2021 15:32:51

  • Олег Зырянов
  • Технический руководитель
  • Неактивен
  • Откуда: Новосибирск
  • На форуме с 10 декабря 2008
  • Сообщений: 4,183

Re: Ошибка Stream Read Error

Есть новее на сайте, но не критично наверное http://www.technologics.ru/download/addition/v5.html.

Давайте еще версию операционной системы и содержимое файла csdn.ini (тот что в папке программы и тот что в профиле пользователя — точно не подскажу, 5.7 старая и как она точно работает уже мало кто помнит)

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Issue:

When you open Structural Bridge Design you get an error message “Stream read error” and the program fails to start.

Causes:

This issue is caused by corrupt data in the registry entry used by Structural Bridge Design to store details about the program state and/or by the temporary files the program creates.

Solution:

Warning: Improperly editing the Windows® registry could render your operating system unusable. Microsoft® provides a wealth of critical information that you need to know about the registry in the Microsoft Knowledge Base at http://support.microsoft.com/support.

Use the Microsoft® Registry Editor at your own risk and only after backing up the registry. Instructions on backing up your registry can be found in the following Microsoft Knowledge Base articles:

  • Back up the registry in Windows 7
  • Back up the registry in Windows Vista
  • How to back up and restore the registry in Windows XP

Additional information about the registry is available in the Help topics in the Microsoft Registry Editor.

Delete SBDSession key from Windows registry

  1. Log on to the workstation as a member of the local Administrators group.
  2. Launch the Run dialog by typing [Windows key] + R (Windows 8/Windows 7) or clicking Start > Run (Windows XP).
  3. In the Run dialog, enter REGEDIT in the “Open” edit field and click OK.
  4. In the Registry Editor, locate and delete the following subkey:

    HKEY_CURRENT_USERSoftwareAutodeskStructural Bridge DesignSession

  5. Close the Registry Editor.

Delete ASBD2014 product folder

  1. Delete the following user profile folder (substitute your login name for %username%): 

Windows 8/Windows 7
C:Users%username%AppDataRoamingAutodeskASBD2014

  Windows XP
C:Documents and Settings%username%Application DataAutodeskASBD2014

Windows 8 and Windows 7: Depending on your system settings, Windows Explorer may not automatically display all the subfolders under the Users folder. If you cannot locate these folders by navigating to the folder, copy and paste the above folder locations into the Windows Explorer address bar.

The program will now start successfully.

Products:

Structural Bridge Design;

1 / 1 / 0

Регистрация: 27.03.2018

Сообщений: 93

1

23.05.2020, 11:58. Показов 3528. Ответов 7


Подскажите, что делаю не так.
БД Firebird есть поле типа Blob Binary. В него загружаю фото сотрудников. На форму выводится фото через компонент TDBImage.
При открытии проекта появляется ошибка «stream read error» если файл фото около или больше 1 Мб.

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



Супер-модератор

Эксперт Pascal/DelphiАвтор FAQ

32457 / 20949 / 8107

Регистрация: 22.10.2011

Сообщений: 36,218

Записей в блоге: 7

23.05.2020, 12:22

2

Как именно в БД загружаются изображения?



0



1 / 1 / 0

Регистрация: 27.03.2018

Сообщений: 93

23.05.2020, 12:33

 [ТС]

3

через Lazarus загрузку пока не реализовал. Загружаю через Firebird напрямую в таблицу



0



Супер-модератор

Эксперт Pascal/DelphiАвтор FAQ

32457 / 20949 / 8107

Регистрация: 22.10.2011

Сообщений: 36,218

Записей в блоге: 7

23.05.2020, 12:42

4

Вот отсюда и проблема. Когда будет загружено через Лазарус — будет работать.



0



1 / 1 / 0

Регистрация: 27.03.2018

Сообщений: 93

23.05.2020, 12:47

 [ТС]

5

ищу реализацию загрузки картинки по кнопке. может подскажите где посмотреть?



0



Супер-модератор

Эксперт Pascal/DelphiАвтор FAQ

32457 / 20949 / 8107

Регистрация: 22.10.2011

Сообщений: 36,218

Записей в блоге: 7

23.05.2020, 12:52

6

Лучший ответ Сообщение было отмечено salaev как решение

Решение



1



1 / 1 / 0

Регистрация: 27.03.2018

Сообщений: 93

23.05.2020, 14:56

 [ТС]

7

Спасибо огромное. Работает.
А как можно убрать ошибку из-за латинских символов в пути к файлу при добавлении?

Миниатюры

Ошибка stream read error
 



0



1 / 1 / 0

Регистрация: 27.03.2018

Сообщений: 93

23.05.2020, 15:25

 [ТС]

8

и еще…

1. От первого, после открытия проги, клика «Добавить фото» до открытия окна проходит примерно 15 секунд, последующие добавления — около 5 секунд.
2. При добавлении файла Tiff выдает ошибку «stream read error», но загружает его. Потом каждый раз, как курсор встает на человека с этой картинкой — снова ошибка «stream read error» .

Это решимо?



0



IPB

> ВНИМАНИЕ!

> Stream read error, возникает ошибка

сообщение 25.11.2011 19:34

Сообщение
#1


Профи
****

Группа: Пользователи
Сообщений: 559
Пол: Мужской
Реальное имя: Бруно

Репутация: -  10  +



Доброго дня ув. форумчане. Сталкнулся с такой проблемой — моя Delphi программа работает с файлом и при каждом своём запуске считывает информацию с него (формат .bmp). В рандомном порядке я получаю ошибку Stream read error, которая обычно возникает, когда какое-либо другое приложение так же пользуется этим файлом. Но я проверил и ни 1 из приложений не может использовать этот файл — так же просто перезагружал компьютер и первым делом запускал программу — тоже самое, хотя на автозапуске системы никаких лишних программ нету. Буду рад любым мыслям и идеям.

———————

Цитата

Imagination is more important than knowledge.

Albert Einstein

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

IUnknown

сообщение 25.11.2011 22:41

Сообщение
#2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +



Цитата

Но я проверил и ни 1 из приложений не может использовать этот файл — так же просто перезагружал компьютер и первым делом запускал программу — тоже самое, хотя на автозапуске системы никаких лишних программ нету.

Значит, предположение о том, что что-то держит файл — неверное. Показывай код, выдающий ошибку, либо обращайся к телепатам за помощью. Без исходника ничего сказать невозможно.

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

Tan

сообщение 25.11.2011 22:47

Сообщение
#3


Профи
****

Группа: Пользователи
Сообщений: 559
Пол: Мужской
Реальное имя: Бруно

Репутация: -  10  +



Cпасибо за ответ. Есть картинка 256 x 256, переменная TexFileName содержит название файла, что находится в корневой директории проекта.

const
TexWidth = 256;
TexHeight = 256;
...
TexSizeX := TexWidth;
TexSizeY := TexHeight;
bitmap := TBitmap.Create;
bitmap.LoadFromFile(TexFileName);
For i := 0 to TexSizeX - 1 do // вот сюда кидает программу когда выдаётся ошибка
For j := 0 to TexSizeY - 1 do
begin
bits [i, j, 0] := GetRValue(bitmap.Canvas.Pixels[i,j]);
bits [i, j, 1] := GetGValue(bitmap.Canvas.Pixels[i,j]);
bits [i, j, 2] := GetBValue(bitmap.Canvas.Pixels[i,j]);
end;

———————

Цитата

Imagination is more important than knowledge.

Albert Einstein

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

IUnknown

сообщение 25.11.2011 22:53

Сообщение
#4


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +



Картинка чем создавалась? Фотошопом? Попробуй ее пересохранить другим редактором, GIMP-ом, или ACDSee, к примеру. На RSDN как-то была тема, что сохраненные фотошопом битмапы не грузятся через LoadFromFile, а пересохраненные (их размер — на 2 байта меньше, чем у фотошопленных) — прекрасно грузятся.

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

Tan

сообщение 26.11.2011 2:48

Сообщение
#5


Профи
****

Группа: Пользователи
Сообщений: 559
Пол: Мужской
Реальное имя: Бруно

Репутация: -  10  +



Да Photoshop. Тупо пересохранил через Paint, на мой взгляд проблема исчезла, никогда в жизни бы не подумал, что виноват редактор, ведь формат .bmp в теории не должен менять своей структуры в зависимости от редактора. Большое спасибо за помощь.

Сообщение отредактировано: Tan — 26.11.2011 2:48

———————

Цитата

Imagination is more important than knowledge.

Albert Einstein

 Оффлайн  Профиль  PM 

 К началу страницы 

+ Ответить 

1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)

Пользователей: 0

500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают

Связь с администрацией: bu_gen в домене octagram.name

Понравилась статья? Поделить с друзьями:
  • Что значит stop c0000145 application error
  • Что значит startup error
  • Что значит smart hard disk error
  • Что значит security error
  • Что значит script hook v critical error