-
Есть компонент типа TADOStoredProc, он взывает хранимую процедуру и передаёт в неё объёмный текстовый параметр (более 8000 символов). И всё бы ничего, но иногда при передаче от параметра остаются только первые 16 символов. Потому как в процедуре тип у параметра text.
Собственно, вопрос к знатокам: Как передать в процедуру большой текст параметром, используя TADOStoredProc?
-
Оставьте на вкладке ADO 3 компонента: TADOConnection, TADODataSet и TADOCommand. Используйте их, и буде вам щщастье. Зачем нужны остальные костыли?
-
Тут скорее другое. Что-то по аналогии загрузки картинки в блоб параметр
-
> Как передать в процедуру большой текст параметром, используя > TADOStoredProc?
Blob(Memo)Field.LoadFromStream(StringStream)
-
то есть Parameters.ParamByName('Text').LoadFromStream
-
> Ega23 © Как правило, я использую TADOConnection + TADOCommand, но тут стояла задача действовать с минимальными изменениями уже имеющегося кода.
> clickmaker © Спасибо! Как доберусь, так попробую.
Пока что проблема была решена заменой TADOStoredProc на TADOQuery, которой прямо в свойство SQL.Text был запихан exec вместе с параметром. Варварство, конечно, но для одноразовой вещи сойдёт.
-
> Пока что проблема была решена заменой TADOStoredProc на > TADOQuery, которой прямо в свойство SQL.Text был запихан > exec вместе с параметром. Варварство, конечно, но для одноразовой > вещи сойдёт.
Замени на TADODataSet
Пример. Строка, типа exec S_SomeProc @Param1=5, @Param2=..... Можно сразу целиковую строку. Можно параметризированную строку, если ХП неоднократно выполняется.
|