![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
почему на второй форме параметический запрос не работает [D7, XP]
sipsik © (2007-03-05 12:26:00)Здравствуйте!
Подскажите, пожалуйста, почему у меня на второй форме не работает параметрический запрос (пишет, что нет вообще параметра в ADOQuery, хотя он есть), а на первой (главной) форме он же работает?
sipsik (2007-03-05 13:32:00) [1]Да, спасибо.
ЮЮ (2007-03-05 13:25:00) [2]> А Вам, ЮЮ, большое спасибо, все получилось
Кстати, если первый запрос и "работает", но с большой долей вероятности - неправильно. Передклвйте его точно так же
sipsik (2007-03-05 13:20:00) [3]Сразу говорю, чтобы не гадали: раньше я об этом свойстве не знала.
Я же не профессионал в этом вопросе, в первый раз делаю. Поэтому и вопросы в разделе "Начинающим".
А Вам, ЮЮ, большое спасибо, все получилось
Плохиш (2007-03-05 13:13:00) [4]Каждое изменение запроса пересоздаёт список параметров.
PS. Для желающих сделать уточнение, подумайте, а знает ли она о том свойстве.
ЮЮ (2007-03-05 13:13:00) [5]> а, ну теперь поняла, сейчас попробую
похоже, индейцы скальп сняли.
Еще нет, но лучше бы они сделали это:
ADOQuery2.SQL.Text :=
'select * from [читатели] ' +
'where "название категории"<:krit';
// cначала сформировали ВЕСЬ запрос, всякая модификация сбросит нафиг все параметрв
ADOQuery2.Parameters[0].Value:=ComboBox1.Text;
// заполнили все параметры, сколько их есть
ADOQuery2.Open;
// открыли
Плохиш (2007-03-05 13:11:00) [6]Kinder, Küche, Kirche
sipsik (2007-03-05 13:09:00) [7]ну вот так тоже не видит параметр
QuerySQL:='select * from [читатели] ';
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add(querySQL);
ADOQuery2.Parameters[0].Value:=ComboBox1.Text;
querySQL:=querySQL+' where "название категории"<:krit';
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add(querySQL);
ADOQuery2.Active;
ADOQuery2.Open;
сначала сформировала текст запроса, потом - параметры. но говорит, нет параметра
sipsik (2007-03-05 13:00:00) [8]предыдущий пост - это Плохишу
а, ну теперь поняла, сейчас попробую
sipsik (2007-03-05 12:59:00) [9]что вы имеете в виду, извините, мне трудно понять вас.
что мне исправить, чтобы на второй форме тоже заработал параметрический запрос?
как только я сажусь за программу, один ребенок начинает играть в индейцев, а второго выгоняют из школы за второй обувью
ЮЮ (2007-03-05 12:57:00) [10]> ADOQuery2.Parameters[0].Value:=ComboBox1.Text;
> querySQL:=querySQL+' where "название категории"<:krit';
> ADOQuery2.SQL.Clear;
> ADOQuery2.SQL.Add(querySQL);
> ADOQuery2.Active;
> ADOQuery2.Open;
Сначаласледует формировать текст запроса, а лишь затемзаполнять параметры
> ADOQuery1.SQL. Add(QuerySQL5);
Теперь у тебя в SQL несколько запросов и выполняется (хотя это и странно) первый из них
> ADOQuery2.SQL.Clear;
> ADOQuery2.SQL.Add(querySQL);
А здесь хоть правильно с точки зрения формирования запроса
Плохиш (2007-03-05 12:53:00) [11]
> sipsik (05.03.07 12:50) [10]
Руки бы вырвал за бездумное топтание кнопок, хоть бы почитала сначала чего.
d:=datetostr(date);
QuerySQL5 := 'SELECT * FROM [заказ на производство] where "Дата производства"<:data and "Реализация"=false';
ADOQuery1.SQL.Text := QuerySQL5;
ADOQuery1.Parameters[0].Value:=date;
ADOQuery1.Open;
> ADOQuery2.Active;
> ADOQuery2.Open;
А это что - "масло масляное"?
sipsik (2007-03-05 12:50:00) [12]Сейчас напишу. Не успеваю.
Вот работающий на первой форме:
ADOQuery1.Parameters[0].Value:=date;
d:=datetostr(date);
QuerySQL5 := 'SELECT * FROM [заказ на производство] where "Дата производства"<:data and "Реализация"=false';
ADOQuery1.SQL.Add(QuerySQL5);
ADOQuery1.Open;
ADOQuery1.Active:=true;
Вот неработающий на второй форме:
ADOQuery2.Parameters[0].Value:=ComboBox1.Text;
querySQL:=querySQL+' where "название категории"<:krit';
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add(querySQL);
ADOQuery2.Active;
ADOQuery2.Open;
ЮЮ (2007-03-05 12:48:00) [13]> ADOQuery2.Parameters.ParamByName(kategor).Value
> на kategor пишет, что undecleared identifier
Напиши
ADOQuery2.Parameters.ParamByName( 'kategor').Value
если параметр так называется, только всё-равно отхватишь AV
Текст запроса ADOQuery2 - в студию
MsGuns (2007-03-05 12:46:00) [14]>?sipsik (05.03.07 12:40) [6]
А код, содержащий текст запроса, можно посмотреть ?
Такое впечатление, что "параметры" в запросе указаны без "волшебного" символа ;)
Плохиш (2007-03-05 12:43:00) [15]
> sipsik (05.03.07 12:40) [6]
Так и будем филосовствовать или всё-таки соизволите представить работающий и неработающий код и запрос?
sipsik (2007-03-05 12:40:00) [16]при обращении
ADOQuery2.Parameters[0].Value
пишет, что list out of bounds,
а при обращении
ADOQuery2.Parameters.ParamByName(kategor).Value
на kategor пишет, что undecleared identifier
Плохиш (2007-03-05 12:35:00) [17]
> sipsik (05.03.07 12:31) [2]
> Я его создала так же, как создавала параметр на первой форме
А чем не нравиться, как параметры ADOQuery создаёт?
ЮЮ (2007-03-05 12:33:00) [18]> а на первой (главной) форме он же работает?
Положи работатающий в DataModule и используй его на обеих формах (если это действительно он же). Самое главное, положи туда же ADOConnection и используй его для всех ADOQuery, где бы они не находились
Reindeer Moss Eater (2007-03-05 12:33:00) [19]но его для программы все равно нет
Это главное.
Для программы его нет. Этим все сказано.
sipsik (2007-03-05 12:31:00) [20]Я его создала так же, как создавала параметр на первой форме, свойства те же, но его для программы все равно нет.
В чем ошибка может быть?