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

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

Добавлено: 19 Март 2006, 10:43
Денис
Привет, Андрей

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

ХП возвращает набор данных, вот их то и надо перекинуть в свою очередь.

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

Добавлено: 19 Март 2006, 10:51
Andrew™
Денис писал(а):Привет, Андрей

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

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

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

 IF MAVLOAD('exec myProc',myQueue)
   MAVSHOWERROR
 END

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

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

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

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

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

Добавлено: 19 Март 2006, 11:05
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