Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1209808656
Andy BitOff
2008-05-03 13:57
2008.06.15
BSOD — ndis.sys


6-1188497289
IOs
2007-08-30 22:08
2008.06.15
TGUID для IInternetProtocolEx


15-1209564689
Eraser
2008-04-30 18:11
2008.06.15
php и blowfish-128


2-1211559464
223001
2008-05-23 20:17
2008.06.15
время


15-1209662503
Andy BitOff
2008-05-01 21:21
2008.06.15
Выбираем беспроводные наушники





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский