Форум: "Начинающим";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];
Внизпочему на второй форме параметический запрос не работает Найти похожие ветки
← →
sipsik (2007-03-05 12:26) [0]Здравствуйте!
Подскажите, пожалуйста, почему у меня на второй форме не работает параметрический запрос (пишет, что нет вообще параметра в ADOQuery, хотя он есть), а на первой (главной) форме он же работает?
← →
Reindeer Moss Eater © (2007-03-05 12:29) [1]пишет, что нет вообще параметра в ADOQuery, хотя он есть
А ты верь тому, что он (оно) пишет.
← →
sipsik (2007-03-05 12:31) [2]Я его создала так же, как создавала параметр на первой форме, свойства те же, но его для программы все равно нет.
В чем ошибка может быть?
← →
Reindeer Moss Eater © (2007-03-05 12:33) [3]но его для программы все равно нет
Это главное.
Для программы его нет. Этим все сказано.
← →
ЮЮ © (2007-03-05 12:33) [4]> а на первой (главной) форме он же работает?
Положи работатающий в DataModule и используй его на обеих формах (если это действительно он же). Самое главное, положи туда же ADOConnection и используй его для всех ADOQuery, где бы они не находились
← →
Плохиш © (2007-03-05 12:35) [5]
> sipsik (05.03.07 12:31) [2]
> Я его создала так же, как создавала параметр на первой форме
А чем не нравиться, как параметры ADOQuery создаёт?
← →
sipsik (2007-03-05 12:40) [6]при обращении
ADOQuery2.Parameters[0].Value
пишет, что list out of bounds,
а при обращенииADOQuery2.Parameters.ParamByName(kategor).Value
на kategor пишет, что undecleared identifier
← →
Плохиш © (2007-03-05 12:43) [7]
> sipsik (05.03.07 12:40) [6]
Так и будем филосовствовать или всё-таки соизволите представить работающий и неработающий код и запрос?
← →
MsGuns © (2007-03-05 12:46) [8]>?sipsik (05.03.07 12:40) [6]
А код, содержащий текст запроса, можно посмотреть ?
Такое впечатление, что "параметры" в запросе указаны без "волшебного" символа ;)
← →
ЮЮ © (2007-03-05 12:48) [9]> ADOQuery2.Parameters.ParamByName(kategor).Value
> на kategor пишет, что undecleared identifier
Напиши
ADOQuery2.Parameters.ParamByName("kategor").Value
если параметр так называется, только всё-равно отхватишь AV
Текст запроса ADOQuery2 - в студию
← →
sipsik (2007-03-05 12:50) [10]Сейчас напишу. Не успеваю.
Вот работающий на первой форме:
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:53) [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;
А это что - "масло масляное"?
← →
ЮЮ © (2007-03-05 12:57) [12]> 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);
А здесь хоть правильно с точки зрения формирования запроса
← →
sipsik (2007-03-05 12:59) [13]что вы имеете в виду, извините, мне трудно понять вас.
что мне исправить, чтобы на второй форме тоже заработал параметрический запрос?
как только я сажусь за программу, один ребенок начинает играть в индейцев, а второго выгоняют из школы за второй обувью
← →
sipsik (2007-03-05 13:00) [14]предыдущий пост - это Плохишу
а, ну теперь поняла, сейчас попробую
← →
sipsik (2007-03-05 13:09) [15]ну вот так тоже не видит параметр
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;
сначала сформировала текст запроса, потом - параметры. но говорит, нет параметра
← →
Плохиш © (2007-03-05 13:11) [16]Kinder, Küche, Kirche
← →
ЮЮ © (2007-03-05 13:13) [17]> а, ну теперь поняла, сейчас попробую
похоже, индейцы скальп сняли.
Еще нет, но лучше бы они сделали это:
ADOQuery2.SQL.Text :=
"select * from [читатели] " +
"where "название категории"<:krit";
// cначала сформировали ВЕСЬ запрос, всякая модификация сбросит нафиг все параметрв
ADOQuery2.Parameters[0].Value:=ComboBox1.Text;
// заполнили все параметры, сколько их есть
ADOQuery2.Open;
// открыли
← →
Плохиш © (2007-03-05 13:13) [18]Каждое изменение запроса пересоздаёт список параметров.
PS. Для желающих сделать уточнение, подумайте, а знает ли она о том свойстве.
← →
sipsik (2007-03-05 13:20) [19]Сразу говорю, чтобы не гадали: раньше я об этом свойстве не знала.
Я же не профессионал в этом вопросе, в первый раз делаю. Поэтому и вопросы в разделе "Начинающим".
А Вам, ЮЮ, большое спасибо, все получилось
← →
ЮЮ © (2007-03-05 13:25) [20]> А Вам, ЮЮ, большое спасибо, все получилось
Кстати, если первый запрос и "работает", но с большой долей вероятности - неправильно. Передклвйте его точно так же
← →
sipsik (2007-03-05 13:32) [21]Да, спасибо.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.03.25;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.037 c