Очередь из результата ХП

Обсуждение MAV Direct ODBC

Модератор: Andrew™

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion и MAV который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
Денис
Бывалый
Сообщения: 70
Зарегистрирован: 07 Июль 2005, 5:39
Откуда: Хабаровск
Контактная информация:

Очередь из результата ХП

Сообщение Денис »

Привет, Андрей

Как можно заполнить свою очередь из результата выполнения ХП.

ХП возвращает набор данных, вот их то и надо перекинуть в свою очередь.
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: Очередь из результата ХП

Сообщение Andrew™ »

Денис писал(а):Привет, Андрей

Как можно заполнить свою очередь из результата выполнения ХП.

ХП возвращает набор данных, вот их то и надо перекинуть в свою очередь.
самое простое это воспользоваться функцией MAVLOAD

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

 IF MAVLOAD('exec myProc',myQueue)
   MAVSHOWERROR
 END
Денис
Бывалый
Сообщения: 70
Зарегистрирован: 07 Июль 2005, 5:39
Откуда: Хабаровск
Контактная информация:

Re: Очередь из результата ХП

Сообщение Денис »

Andrew Myalin писал(а):
самое простое это воспользоваться функцией MAVLOAD

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

 IF MAVLOAD('exec myProc',myQueue)
   MAVSHOWERROR
 END
а если в ХП нужно передать парамерты ? и нужно ли биндить какие нить поля ?
Аватара пользователя
Andrew™
SQL профи
Сообщения: 651
Зарегистрирован: 05 Июль 2005, 16:32
Откуда: Москва, Зеленоград

Re: Очередь из результата ХП

Сообщение Andrew™ »

Денис писал(а):
Andrew Myalin писал(а):
самое простое это воспользоваться функцией MAVLOAD

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

 IF MAVLOAD('exec myProc',myQueue)
   MAVSHOWERROR
 END
а если в ХП нужно передать парамерты ? и нужно ли биндить какие нить поля ?
ну ежели параметры простые то можно и явно их прописать в MAVLOAD

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

 IF MAVLOAD('exec myProc 1 2 3',myQueue)
   MAVSHOWERROR
 END
ежели сложные и хотим красиво, то надо так

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

tmp   MAVSelect
sql    MAVExecSp

    CODE

  tmp.Init(,0)
  tmp.BindField(File.Field,Queue.Field)
  ...
  if tmp.PrepareRun()
   mavshowerror
   return
  end
  sql.PrepareSelect(tmp.GetHSTMT())
   sql.bindparametr(Param1)
   sql.bindparametr(Param2)
   sql.bindparametr(Param3)
  if sql.run('myProc')
    mavshowerror
    return
  end 
  loop while not tmp.Fetch()
     add(myQueue)
  end
Ответить