Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > не пойму запрос с параметром


Автор: snakesnight 13.6.2009, 15:32
Просьба помочь!!!!
Есть база данных. К ней в Delphi сделал оболочку, подключил все как водится (не первый раз делаю).
Для проверки в Ibexperte сделал запрос с параметрами, все работает....
Кидаю на форму в Delphi IBQuery, database настраиваю, кидаю datasource, ставлю в свойствах IBQuery, кидаю grid, ставлю в свойствах datasourse.....и вроде бы все должно работать....
Копирую из Ibexpert'а текст запроса, вставляю его в IBQuery.SQL, прописываю имена и типы в Params, присваиваю им значения, и ставлю свойство active в truу............................
Вылезает ошибка Circular datalinks are not allowed....
Хотя если убрать из запроса параметры все работает на ура, но мне нужно делать динамические запросы, так что параметры необходимо оставить, а если их оставить опять идет ошибка "Circular datalinks are not allowed"
В чем дело? Подскажите плиз...... всю голову сломал.. smile 
В Ibexperte запрос  с параметрами работает!!!!!
А в Delphi работает только без параметров :(
P.S. Свойство IBQuery.paramcheck в active 

Автор: vovk 13.6.2009, 15:35
а может пекажете как вы делаете от добавления текста запрроса до его открытия?

Автор: snakesnight 13.6.2009, 15:39
если писать кодом тогда:

Qbuery1.active:= false;
Qbuery1.SQL.Add('сдесь запрос с параметрами');
Qbuery1.active :=true;

если я конечно понял вопрос?!?

Автор: vovk 13.6.2009, 16:34
а параметрам то вы где значение присваиваете? этож надо отькрытия запроса делать? Или всё засекречено?

Автор: snakesnight 13.6.2009, 16:39
дак прямо в диспетчере объектов в IBQuery 

там есть вкладка value при выборе имени параметра, вот там и задаю....

пробовал задавать в коде:

IbQuery1.params[0].value:='  '; и так IbQuery1.parambyname('name_param').asstring:= ' ';

все равно ошибка таже самая

Автор: vovk 13.6.2009, 16:47
попробуйте совместить всё в коде тобиш

Код

IQbuery1.active:= false;
IQbuery1.SQL.Add('сдесь запрос с параметрами');
IQbuery1.active :=true;

+
Код

IbQuery1.parambyname('name_param').asstring:= ' ';

чтоб вышло так
Код


IQbuery1.active:= false;
IQbuery1.SQL.Add('сдесь запрос с параметрами');
IbQuery1.parambyname('name_param').asstring:= ' ';
IQbuery1.active :=true;


раз запрос и параметры засекречены, думаю в запросе всё верно? перед параметрами : и тп, запрос то вообще проверяли если место параметров поставить значения сразу, работает?

Автор: snakesnight 13.6.2009, 16:53
Код

IQbuery1.active:= false;
IQbuery1.SQL.Add('сдесь запрос с параметрами');
IbQuery1.parambyname('name_param').asstring:= ' ';
IQbuery1.active :=true;


так я уже далал, толку никакого, я и сам понять не могу вроде все делаю как надо, все таки не первый год этими вещами занимаюсь, и первый раз такая ошибка.....пишу в CodeGear Delphi 2009 может с этим что связано?

Есть идеи что еще может быть не так???

Автор: vovk 13.6.2009, 17:05
к сожалению о CodeGear Delphi 2009 могу сказать только одно слово NET, хотя думаю вряд ли, но не уверен.  Извените дальше я ничего сказать не могу. Был бы запрос хоть схематически показан может быть смог бы помоч.

Автор: snakesnight 13.6.2009, 17:07
там просто запрос большой....очень....
ну ладно..и на том спасибо...буду снова ломать голову smile

Автор: Romikgy 13.6.2009, 23:34
### а буфер обмена зачем тогда?

Автор: flomaster 16.6.2009, 23:01
Что за дебилизм, задавая вопрос, устривать соревнования телепатов.
Нужен ответ, так опиши проблему внятно и полностью.
Или растянешь на сотню страниц просьбы "покажи свой код" от желающих помочь.

Циклическая ссылка, значит где-то ссылается на само себя.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)