Arrayappend приводит к падениям сервера?

fedotxxl

Well-Known Member
09.11.2005
614
0
#1
Привет, народ
Мне сейчас доказывают, что arrayAppend очень плохая функция, которая приводят к падениям сервера и предлагают использовать самописную. Так ли это? Если сервер падает из-за arrayAppend'a, то как это можно вычислить в nsd?
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
2
#2
не сталкивался...
замени на самописную ;)

а еще проверь нет ли конструкций типа
Код:
call sub1(param1, func1(param2))
т.е. таких где параметром функции/процедуры (sub1) служит результат возвращаемый другой функцией (func1)
такие конструкции лучше заменить на конструкции типа
Код:
par3 = func1(param2)
call sub1(param1, par3)
причем я не помню точно, нужно ли это только для самописных функций или для нотесовых тоже...

может у тебя параметром ArrayAppend какая-то своя функция указана? :)
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#3
Помнится, когда-то (когда R6 был сильно актуален) я замечал какой-то косяк за ArrayAppend.
Но сейчас уже и не вспомню что там было.
Сейчас в коде довольно часто использую и, можно сказать, доволен.
Падений сервака из-за ArrayAppend не замечал.
 

fedotxxl

Well-Known Member
09.11.2005
614
0
#4
Akupaka
Я не думаю, что падает из-за arrayAppend. Просто мне утверждают оное не приводя никаких доводов. Вот я и решил спросить
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 226
25
#5
Мне сейчас доказывают, что arrayAppend очень плохая функция, которая приводят к падениям сервера и предлагают использовать самописную. Так ли это? Если сервер падает из-за arrayAppend'a, то как это можно вычислить в nsd?
подтверждаю
уронить просто
попробуйте с помощью этой функции соединить стринговый массив и датовый
6-ка падала однозначно и шустро

nsd может успеть ругнуться с ошибкой incorect data types

а вообще я этой функцией пользуюсь регулярно, только немного обжёгся, зато научил, всё точно ей подсовывать
простой пример первое применение этой функции
dim vmas as variant, s(0) as string
vmas = s ' тут мы уже подготовили переменную к arrayappend
vmas = fulltrim(arrayappend(vmas, vmas2)) ' и уже никаких падений сервера

самое важное это лишь правильно подготовить массивы к слиянию, разнотипность в 50% убивает сервер
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 492
367
#6
я variant "готовлю" через split, хотя - непринцыпиально ;)
 

TIA

:-)
Lotus team
15.05.2009
790
3
#7
Запрос по партнёрке с ключевым словом ArrayAppend дал следующее

1.U​s​i​n​g​ ​t​h​e​ ​L​o​t​u​s​S​c​r​i​p​t​ ​A​r​r​a​y​A​p​p​e​n​d​ ​f​u​n​c​t​i​o​n​ ​t​o​ ​a​p​p​e​n​d​ ​a​ ​d​a​t​e​ ​t​i​m​e​ ​v​a​l​u​e​ ​e​i​t​h​e​r​ ​a​p​p​e​n​d​s​ ​a​ ​b​l​a​n​k​ ​v​a​l​u​e​ ​o​r​ ​c​a​u​s​e​s​ ​a​ ​c​r​a​s​h
U​s​i​n​g​ ​t​h​e​ ​L​o​t​u​s​S​c​r​i​p​t​ A​r​r​a​y​A​p​p​e​n​d ​f​u​n​c​t​i​o​n​ ​t​o​ ​a​p​p​e​n​d​ ​a​ ​D​a​t​e​ ​T​i​m​e​ ​V​a​l​u​e​ ​e​i​t​h​e​r​ ​a​p​p​e​n​d​s​ ​a​ ​b​l​a​n​k​ ​v​a​l​u​e​ ​o​r​ ​c​a​u​s​e​s​ ​a​ ​c​r​a​s​h​.​ ​A​t​t​e​m​p​t​i​n​g​ ​t​o​ ​a​p​p​e​n​d​ ​a​ ​N​o​t​e​s​D​a​t​e​T​i​m​e​ ​o​b​j​e​c​t​ ​a​p​p​e​n​d​s​ ​a​ ​n​u​l​l​ ​v​a​l​u​e​.​ ​A​t​t​e​m​p​t​i​n​g​ ​t​o​ ​p​a​s​s​ ​t​h​e​ ​N​o​w​ ​f​u​n​c​t​i​o​n​ ​o​r​ ​T​o​d​a​y​ ​f​u​n​c​t​i​o​n​ ​r​e​s​u​l​t​s​ ​i​n​ ​a​ ​c​r​a​s​h​.

2.L​O​3​9​3​8​5​:​ ​A​R​R​A​Y​A​P​P​E​N​D​ ​H​A​N​G​U​P​ ​W​H​E​N​ ​2​N​D​ ​A​R​G​U​M​E​N​T​ ​I​S​ ​A​ ​F​U​N​C​T​I​O​N​ ​C​A​L​L​ ​T​H​A​T​ ​H​A​N​D​L​E​S​ ​E​R​R​O​R​ ​A​N​D​ ​R​E​T​U​R​N​S​ ​E​M​P​T​Y
W​h​e​n​ ​t​h​e​ ​s​e​c​o​n​d​ ​a​r​g​u​m​e​n​t​ ​t​o​ A​r​r​a​y​A​p​p​e​n​d ​i​s​ ​a​ ​f​u​n​c​t​i​o​n​ ​c​a​l​l​,​ ​a​n​d​ ​t​h​e​ ​f​u​n​c​t​i​o​n

3.S​P​R​#​ ​C​G​A​A​6​6​S​G​M​9​ ​-​ ​F​i​x​e​d​ ​a​ ​c​r​a​s​h​ ​t​h​a​t​ ​o​c​c​u​r​r​e​d​ ​w​h​e​n​ ​t​h​e​ ​s​e​c​o​n​d​ ​a​r​g​u​m​e​n​t​ ​o​f​ ​a​n​ A​r​r​a​y​A​p​p​e​n​d ​w​a​s​ ​a​n​ ​o​b​j​e​c​t​ ​o​r​ ​a​ ​d​a​t​e​ ​v​a​r​i​a​n​t​.​ ​I​n​s​t​e​a​d​ ​o​f​ ​a​ ​c​r​a​s​h​,​ ​t​h​e​ ​f​o​l​l​o​w​i​n​g​ ​e​r​r​o​r​ ​m​e​s​s​a​g​e​ ​w​i​l​l​ ​b​e​ ​r​e​t​u​r​n​e​d​ ​"​N​o​t​e​s​I​t​e​m​ ​c​a​n​n​o​t​ ​b​e​ ​s​e​t​ ​t​o​ ​a​n​ ​a​r​r​a​y​ ​o​f​ ​m​i​x​e​d​ ​d​a​t​a​ ​t​y​p​e​s​.​.​.​.​"​.

4.P​a​s​s​i​n​g​ ​a​ ​L​o​t​u​s​S​c​r​i​p​t​ ​l​a​n​g​u​a​g​e​ ​a​r​r​a​y​ ​f​u​n​c​t​i​o​n​ ​a​s​ ​a​ ​p​a​r​a​m​e​t​e​r​ ​f​o​r​ ​a​ ​f​u​n​c​t​i​o​n​ ​o​r​ ​a​ ​s​u​b​r​o​u​t​i​n​e​ ​c​a​u​s​e​s​ ​a​ ​h​a​n​g​ ​o​r​ ​c​r​a​s​h
T​h​e​ ​i​s​s​u​e​ ​i​s​ ​k​n​o​w​n​ ​t​o​ ​o​c​c​u​r​ ​i​f​ ​a​n​y​ ​o​f​ ​t​h​e​ ​f​o​l​l​o​w​i​n​g​ ​i​s​ ​p​a​s​s​e​d​ ​a​s​ ​a​ ​p​a​r​a​m​e​t​e​r​ ​i​n​ ​a​ ​s​u​b​r​o​u​t​i​n​e​ ​o​r​ ​f​u​n​c​t​i​o​n​:​ A​r​r​a​y​A​p​p​e​n​d,​ ​A​r​r​a​y​G​e​t​I​n​d​e​x​,​ ​A​r​r​a​y​R​e​p​l​a​c​e​,​ ​o​r​ ​F​u​l​l​t​r​i​m​.
 

Omh

Well-Known Member
Lotus team
04.07.2007
2 210
1
#8
Вообщем, если юзать с умом (однотипные данные, не передавать ф-ию как параметр), похоже, проблемы не ожидаются.
А если мочить к дате стринг, а сверху ещё и номерок приплюсовать или подать ф-ию, то, боюсь, и самопальная ф-ия может скочевряжиться ;)
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 226
25
#9
TIA
в запросе понял только в конце про FullTrim ;)