Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.06.15;
Скачать: CL | DM;

Вниз

Обращение к параметру в 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;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.012 c
15-1209409182
Dmitry S
2008-04-28 22:59
2008.06.15
Тонкости перехвата API


15-1209694656
TCanvas
2008-05-02 06:17
2008.06.15
Блюр без затемнения?


15-1209307659
Dmitry S
2008-04-27 18:47
2008.06.15
Прочее


15-1209900866
REA
2008-05-04 15:34
2008.06.15
Ищем Grid


15-1209657957
GreyWolf
2008-05-01 20:05
2008.06.15
Копирую файлы с привода DVD на HDD, Winamp