AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.01.2006, 11:27   #1  
yd_ is offline
yd_
Участник
 
62 / 10 (1) +
Регистрация: 24.01.2005
Здравствуйте!
Есть довольно длинный текст запроса, который присваивается:
SQLCommand.CommandText := '<очень_длинный_запрос>';

где SQLCommand Automation.'Microsoft ActiveX Data Objects 2.8 Library'.Command

Получаю описанную в названии темы ошибку. Что делать?

Заранее спасибо.
Старый 27.01.2006, 11:53   #2  
rmv is offline
rmv
Участник
 
481 / 11 (1) +
Регистрация: 15.02.2005
Навижн не может передать ADO более чем Text1000+Text1000.
Насколько я помню AdoRecordset.open принимает в качестве аргумента строку запроса типа Variant, как с ADO.Command не в курсе.
Можно попробовать собирать запрос в текстовый массив, далее через какой нить Automation (XMLDOM например) или OCX сложить строку в Variant и передать ADO.
Старый 28.01.2006, 11:25   #3  
TarasNBV is offline
TarasNBV
Участник
 
28 / 10 (1) +
Регистрация: 23.07.2005
Адрес: Ukraine
А можно еще на самом SQL написать User Defined Function или View в зависимости от задачи и свой запрос строить к этим обьектам.
Старый 07.02.2006, 16:14   #4  
Likefire is offline
Likefire
Заноза в заднице
Аватар для Likefire
MCBMSS
Лучший по профессии 2009
 
547 / 50 (3) ++++
Регистрация: 22.10.2007
Адрес: Москва
Записей в блоге: 1
Цитата:
Сообщение от Taras Посмотреть сообщение
А можно еще на самом SQL написать User Defined Function или View в зависимости от задачи и свой запрос строить к этим обьектам.
Не можно, а нужно. Запрос кладешь в хранимую процедуру, либо во вьюху, в зависимости от того, будут входные параметры или нет. И тогда вместо полного текста запроса пишешь: MyConnection.Execute('EXEC ' + MyQuery), где MyQuery - название хранимой процедуры c передаваемым параметром, либо название вьюхи.

...Да! Совсем забыл. С передаваемыми параметрами и методом EXEC надо бы осторожненько работать, ибо если какой-нить псевдочеловек вместо необходимого текстового параметра в диалоге укажет нечто типа: 'DROP DATABASE (с одиночной кавычкой впереди) - смеяться будет не чему.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков!
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:28.