ТАКОЕ происходило - Уже не происходит !



Posted by Анатолий Строкань, Херсон on November 12, 1999 at 06:19:09:

In Reply to: Как установили Сервер 3.11, два зависания в день это норма... posted by Виталий, Е-бург on November 12, 1999 at 03:12:35:

Формы до переделки
>~41-11.rpt
* Список продуктов
¦ с/счет наименование количество цена
# ~41-14
N1=[n1 #]
N2=[cp [n2 #],1,25]
N3=[ep #,1]
N4=[ep #,2]
^^^^^N1^^ ^^^^^N2^^^^^^^^^^^^^^^^^^^^^^ ^^^N3^^^ ^^^^^^N4^^^^^
#
AS=[as ~41-14]
SA=[sa ~41-14,AS]
¦ всего ^^AS c/счетов - ^^^SA^^^^^^^^ последний в списке.

после переделки
>~41-11.rpt
* Список товаров на складе
[p 1,[n1 ~41-11]]
call TOV_List

> А вот фрагмент из FIRST.RPT
:TOV_List
* [P 1] номер счета товара
NA=[P 1];NN=[cp [n2 *NA],1,34]
¦ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ кол-во цена
# *NA
N1=[n1 #];N2=[n2 #];N3=[ep #,1];N4=[ep #,2]
^^^^^N1^^ ^^^^^N2^^^^^^^^^^^^^^^^^^^^^^ ^^^N3^^^ ^^^^^^N4^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#
AS=[as *NA]
SA=[sa *NA,AS]
¦ всего ^^AS c/счетов - ^^^SA^^^^^^^^ последний в списке.
return TOV_List

*********************************
Резюме:
1. в некоторых случаях, я добавил рассекателей(или растекателей) "с избытком".
2. в некоторых поставил явное обрезание типа [cp N2,1,34], чтобы не было

3. Провел анализ отчетных форм, где используется выбор "групп" с вырезкой части строки:
Пример: N1='4101-1000'
GR = [cp N1,3,2]
заметим что может возникнуть ситуация, когда [length N1]<=2 и [cp N1,3,2] может привести к зависанию ФБП и всей системы, вследствие нарушения целостности данных в памяти из-за обращения за пределы строки.
**(Вообще-то о попытках вырезать за пределами строки что-то писал многоуважаемый Анимица Анатолий Антонович).

Я попытался проанализировать написаные мной тексты и уйти от возможных ошибок.

Результат - стабильная работа.

P.S. Еще мною замечено - NT 4.0 при установке Remote Access Service начинает работать с глюками даже после установки Service Pak 4.0 или 5.0 (по крайней мере в Nt4Server у меня так, а вот Workstation не пробовал).

Успехов Вам.

С уважением, Анатолий.


Пpишедшие ответы: