IP Driver 8.0.8658 Практическое применение в бизнесе

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Alex
Старожил
Сообщения: 211
Зарегистрирован: 29 Август 2005, 14:54
Откуда: Белоруссия

Re: IP Driver 8.0.8658 Практическое применение в бизнесе

Сообщение Alex »

Код: Выделить всё

   
LOC:Records_IN_Batch=  p2
  LOC:Current_Stage = p3
  Open(TCDMANUFACTURERS,40h)
  RECS#=RECORDS(TCDMANUFACTURERS)
  CASE UPPER(p1)
  OF 'PREPARE'
      ReturnValue=RECS#
      Return(ReturnValue)
  OF 'GETRECORDS'
      LOC:TCDMANUFACTURERSSTRING=''
      SET(TCDMANUFACTURERS,(LOC:Current_Stage -1) * LOC:Records_IN_Batch+1)
      LOOP I#=1 TO LOC:Records_IN_Batch 
           NEXT(TCDMANUFACTURERS)
           IF Errorcode()
               BREAK
            ELSE
              LOC:TCDMANUFACTURERSSTRING=clip(LOC:TCDMANUFACTURERSSTRING) &              TDMAN:MFA_ID &';'& TDMAN:MFA_BRAND &';'& '|'

            END
      END
      
      Return LOC:TCDMANUFACTURERSSTRING
      
  END

Вот кусок кода серверной хранимки. Есть непонятное явление. При последнем вызове этой хранимой на сервере процедуры (когда сворачивается в строку последний пакет записей из файла),- эта процедура возвращает клиенту пустую строку. Хотя если прямо перед RETURN вызвать Message(LOC:TCDMANUFACTURERSSTRING), то эта строка непуста.
Т.е. как только воявляется Errorcode() <>0 , так сразу на клиент возвращается ПУСТО. :evil: Если же возвращать результат через глобальную переменную (на клиенте IPX.GETREMOTEVARIABLE()), то всё возвращается верно. Прошу помощи. Может не вижу чего..
Аватара пользователя
Alex
Старожил
Сообщения: 211
Зарегистрирован: 29 Август 2005, 14:54
Откуда: Белоруссия

Re: IP Driver 8.0.8658 Практическое применение в бизнесе

Сообщение Alex »

Таки не сталкивался никто? Не могу разгадать загадку эту.. (Clarion6.3 IPDS для него же)
Ответить