Страница 2 из 2

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

Добавлено: 06 Декабрь 2013, 4:25
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()), то всё возвращается верно. Прошу помощи. Может не вижу чего..

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

Добавлено: 26 Декабрь 2013, 17:05
Alex
Таки не сталкивался никто? Не могу разгадать загадку эту.. (Clarion6.3 IPDS для него же)