Конференция "Базы" » Передача параметра в хранимую процедуру. [D7, MSSQL]
 
  • Miau (25.06.09 00:40) [0]
    Есть компонент типа TADOStoredProc,
    он взывает хранимую процедуру и передаёт в неё объёмный текстовый параметр (более 8000 символов). И всё бы ничего, но иногда при передаче от параметра остаются только первые 16 символов. Потому как в процедуре тип у параметра text.

    Собственно, вопрос к знатокам:
    Как передать в процедуру большой текст параметром, используя TADOStoredProc?
  • Ega23 © (25.06.09 10:10) [1]
    Оставьте на вкладке ADO 3 компонента: TADOConnection, TADODataSet и TADOCommand. Используйте их, и буде вам щщастье. Зачем нужны остальные костыли?
  • Павел Калугин © (25.06.09 12:43) [2]
    Тут скорее другое. Что-то по аналогии загрузки картинки в блоб параметр
  • clickmaker © (25.06.09 12:59) [3]
    > Как передать в процедуру большой текст параметром, используя
    > TADOStoredProc?

    Blob(Memo)Field.LoadFromStream(StringStream)
  • clickmaker © (25.06.09 13:01) [4]
    то есть Parameters.ParamByName('Text').LoadFromStream
  • Miau (25.06.09 20:42) [5]
    > Ega23 ©
    Как правило, я использую TADOConnection + TADOCommand, но тут стояла задача действовать с минимальными изменениями уже имеющегося кода.

    > clickmaker ©
    Спасибо! Как доберусь, так попробую.

    Пока что проблема была решена заменой TADOStoredProc на TADOQuery, которой прямо в свойство SQL.Text был запихан exec вместе с параметром. Варварство, конечно, но для одноразовой вещи сойдёт.
  • Ega23 © (26.06.09 10:08) [6]

    > Пока что проблема была решена заменой TADOStoredProc на
    > TADOQuery, которой прямо в свойство SQL.Text был запихан
    > exec вместе с параметром. Варварство, конечно, но для одноразовой
    > вещи сойдёт.


    Замени на TADODataSet

    Пример. Строка, типа exec S_SomeProc @Param1=5, @Param2=.....  
    Можно сразу целиковую строку.
    Можно параметризированную строку, если ХП неоднократно выполняется.
 
Конференция "Базы" » Передача параметра в хранимую процедуру. [D7, MSSQL]
Есть новые Нет новых   [134473   +33][b:0][p:0]