Форум: "Начинающим";
Текущий архив: 2008.06.15;
Скачать: [xml.tar.bz2];
ВнизОбращение к параметру в SQL запрос по имени Найти похожие ветки
← →
Константин (2008-05-19 20:55) [0]Доброго времени!
необходимо задать значение параметра в sql запрос по его имени.
в инете нашел пример такого обращенияADOQuery2.ParamByName("p0").Value:=
но при компиляции выдается ошибка.
Есть ли другой способ?
← →
Германн © (2008-05-19 21:16) [1]
> но при компиляции выдается ошибка
Какая?
← →
Константин (2008-05-19 21:18) [2]Undeclared identifier: "ParamByName"
← →
Германн © (2008-05-19 21:20) [3]
> Константин (19.05.08 21:18) [2]
Значит ты не создал такой параметр.
← →
Константин (2008-05-19 21:27) [4]как создать параметр?
← →
Германн © (2008-05-19 21:34) [5]
> Константин (19.05.08 21:27) [4]
>
> как создать параметр?
>
Для начала попробовать установить в инспекторе объектов ADOQuery2.ParamCheck True. Если не поможет, то в том же инспекторе свойство Parameters. В нем и создай нужный параметр.
← →
sniknik © (2008-05-19 21:35) [6]ADODataSet.Parameters.ParamByName("p0").Value:=
а найденный пример для BDE с бездумно замененным Query на ADOQuery либо автором вопроса, либо автором "оригинала".
← →
Константин (2008-05-19 21:39) [7]
> sniknik © (19.05.08 21:35) [6]
>
> ADODataSet.Parameters.ParamByName("p0").Value:=
>
> а найденный пример для BDE с бездумно замененным Query на
> ADOQuery либо автором вопроса, либо автором "оригинала".
>
Спасибо.
по поводу примера каюсь "автором вопроса"
← →
Германн © (2008-05-19 21:44) [8]
> sniknik © (19.05.08 21:35) [6]
Коль, а всё-таки есть ясность в поведении ParamCheck?
← →
sniknik © (2008-05-19 21:54) [9]> Коль, а всё-таки есть ясность в поведении ParamCheck?
конечно. полная ясность и однозначность - установлен в true перед внесением запроса, запрос парсится, параметры создаются, в false, нет, создавай сам.
а с чего сомнения?
← →
Константин (2008-05-19 21:54) [10]По поводу параметров обращение по имени прошло при компиляции, но всеравно отказывалось работать пока, не создал данные параметры.
и можно еще вопрос при выполнении SQL запросаselect a.namek,b.namer1,c.namer2,d.summa,d.prim from koshelek as a, rashod1 as b, rashod2 as c, oprashod as d
where d.kodv=:p0 and a.kodk=d.kodk and b.kodr1=d.kodr1 and c.kodr2=d.kodr2
and d.kodk=:p1
and data1 between :p2 and :p3
order by a.namek,b.namer1,c.namer2
Выдается сообщение "Слишком мало параметров. Требуется 6"
Из-за чего это?
← →
Германн © (2008-05-19 21:58) [11]
> sniknik © (19.05.08 21:54) [9]
>
> > Коль, а всё-таки есть ясность в поведении ParamCheck?
> конечно. полная ясность и однозначность - установлен в true
> перед внесением запроса, запрос парсится, параметры создаются,
> в false, нет, создавай сам.
>
> а с чего сомнения?
>
Да нет не всегда при true они автосоздаются. И я когда-то задавал такой вопрос и у Ёжки тоже кое что наблюдалось.
Ega23 © (12.03.08 09:57) [4]
Заметил любопытную особенность (по крайней мере у ADO): если в design-time отключен ADOConnection (точнее, его вообще нет, он потом при создании формы или фрейма задаётся), то параметры нифига не добавляются, даже при ParamCheck=true. Приходится либо ручками добавлять, либо временный ADOConnection строить.
← →
sniknik © (2008-05-20 00:31) [12]> Из-за чего это?
если работа с базой access то изза неправильного синтаксиса в запросе, он может непонятные ему слова воспринять как параметры, уже сам, без дельфи. такой уж у него стиль, если запрос выполняется в программе access то она на них всплывающие окна с предложением ввода значения выдает.
> если в design-time отключен ADOConnection
если у датасета нет коннекта, т.е. ты делаешь рекордсет в памяти то какие ему нужны параметры? для запроса к чему?
имхо. все правильно.
← →
Германн © (2008-05-20 00:48) [13]
> sniknik © (20.05.08 00:31) [12]
>
> > если в design-time отключен ADOConnection
> если у датасета нет коннекта, т.е. ты делаешь рекордсет
> в памяти то какие ему нужны параметры? для запроса к чему?
>
> имхо. все правильно.
>
А причем тут отсутствие коннекта в design-time? Разве анализ текста запроса написанный в design-time там же (в design-time) и анализируется на предмет поиска ":Param" style parameters? К тому же у меня и текст запроса вводился в run-time, поскольку этих запросов было несколько.
← →
sniknik © (2008-05-20 01:27) [14]> А причем тут отсутствие коннекта в design-time?
а это разве не твои слова?
> если в design-time отключен ADOConnection
сделай в рантайм, только если без коннекта, это значит чистый рекордсет, в памяти, ему не то что параметры, ему и запрос не нужен.
> Разве анализ текста запроса написанный в design-time там же (в design-time) и анализируется на предмет поиска ":Param" style parameters?
частично там частично идет запрос к серверу, попытка определить типы параметров. заметь, при неактивном коннекте (connected=false), при вносе запроса в какойнибудь рекордсет/комманд коннект активируется.
> К тому же у меня и текст запроса вводился в run-time, поскольку этих запросов было несколько.
и ни один не создал параметров, при существующем коннекте?
← →
sniknik © (2008-05-20 01:33) [15]> а это разве не твои слова?
>> если в design-time отключен ADOConnection
надо было выделить. вот при том и design-time. странно ты обратил внимание именно на design-time, хотя я там ([12]) говорил про отсутствие коннекта (ADOConnection), а design-time даже не упомянул. он кроме как в твоей цитате в тексте не присутствует.
← →
Германн © (2008-05-20 01:43) [16]
> sniknik © (20.05.08 01:27) [14]
>
> > А причем тут отсутствие коннекта в design-time?
> а это разве не твои слова?
> > если в design-time отключен ADOConnection
>
Нет не мои. Я цитировал Ega23 ©. Но я специально обратил на них внимание.
> > Разве анализ текста запроса написанный в design-time там
> же (в design-time) и анализируется на предмет поиска ":Param"
> style parameters?
> частично там частично идет запрос к серверу, попытка определить
> типы параметров. заметь, при неактивном коннекте (connected=false),
> при вносе запроса в какойнибудь рекордсет/комманд коннект
> активируется.
>
Хм. Хм.
← →
Германн © (2008-05-20 01:47) [17]
> sniknik © (20.05.08 01:33) [15]
>
> > а это разве не твои слова?
> >> если в design-time отключен ADOConnection
> надо было выделить. вот при том и design-time. странно ты
> обратил внимание именно на design-time, хотя я там ([12])
> говорил про отсутствие коннекта (ADOConnection), а design-
> time даже не упомянул. он кроме как в твоей цитате в тексте
> не присутствует.
>
Что ты подразумеваешь под отсутствие коннекта (ADOConnection)?
← →
sniknik © (2008-05-20 08:47) [18]> Что ты подразумеваешь под отсутствие коннекта (ADOConnection)?
опять же. я повторил твои выкладки
> отключен ADOConnection (точнее, его вообще нет
и сделал свои предположения.
у меня единственный возможный вариант, когда коннекта "вообще нет" это рекордсет в памяти, там запрос вообще не нужен.
не понимаю в общем я ваших "затруднений", по моему вполне ясное, логичное поведение. (зачем создавать то что не нужно? все одно что телегу бензином заправлять... на всякий случай, когда потом. когда нибудь к ней будет мотор приделан)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.06.15;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.006 c