![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Parameter not found
123-ий © (2008-05-26 13:12:00)Пользуюсь ADO. Пример запроса:
procedure TfPlaner.GetPlansList;
var
Done, Date: string;
begin
Date := DateToStr(now);
with PlansQuery do
begin
close;
SQL.Clear;
SQL.Add('Select *');
SQL.Add('From Plans');
SQL.Add('Where Date=:pDate');
SQL.Add('Order By Company');
Prepared := true;
Parameters.ParamByName('pDate').Value := Date;
open;
end;
PlansListBox.Clear;
PlansQuery.First;
while PlansQuery.Eof = false do
begin
PlansListBox.Items.Add(PlansQuery.FieldByName('Company').AsString);
PlansQuery.Next;
end;
end;
В итоге ошибка Parameter "pDate" not found. В таблице поле есть. Значение параметру присваивается нормальное. В чём может быть дело?
123-ий (2008-05-26 17:11:00) [1]
> Anatoly Podgoretsky © (26.05.08 15:15) [26]
Ну когда сказали ParamCheck я сделал ParamCheck := true; и это не помогло :)
sniknik (2008-05-26 16:01:00) [2]> тоже соединение пару раз неназначил
да я помню обсуждения порожденные этим поводом, но тут код не тот... вот если бы он внес запрос, а после этого, перед открытием стал бы коннект присваивать... тогда да, тогда даже инфа о используемом провайдере не понадобилась бы.
> зато теперь знаю откуда могут расти ноги у этой ошибки.
да из всего тела... %)
Palladin (2008-05-26 15:49:00) [3]
> sniknik © (26.05.08 15:25) [27]
а чудес не быват. а опыт у меня в такой ошибке имелся. :) я'ж не божественное существо, тоже соединение пару раз неназначил, зато теперь знаю откуда могут расти ноги у этой ошибки.
Anatoly Podgoretsky (2008-05-26 15:26:00) [4]
> (ну а что можно сказать в отсутствии нужной информации?)
Можно сказать ССЗБ
sniknik (2008-05-26 15:25:00) [5]> В смысле ParamCheck - не помог.
оно и не должно было помочь. просто его значение (фалсе) это еще одна возможность почему может происходить обсуждаемая ошибка...
информацию ты должен был привести как можно более полную, и раз уж не догадался то ответить на уточняющие вопросы...
вот к примеру о пользе инфы, пока ты не сказал
123-ий (26.05.08 13:44) [6]
> Jet 4
все мои выкладки не имели смысла...
я видел вопрос [0] когда еще не было ни одного поста... открыл, прочитал...пожал плечами, подумал "чудеса случаются", и закрыл ветку... (ну а что можно сказать в отсутствии нужной информации?)
Anatoly Podgoretsky (2008-05-26 15:15:00) [6]В смысле ты так и не сообщил его значение, а поможет или нет и речи не стояло.
123-ий (2008-05-26 15:10:00) [7]В смысле ParamCheck - не помог.
123-ий (2008-05-26 15:09:00) [8]
> Anatoly Podgoretsky © (26.05.08 14:37) [20]
Даже если это был вопрос, это мне не помогло :)
Palladin (2008-05-26 15:03:00) [9]а в ацессе спровоцирует InputBox :)
sniknik (2008-05-26 14:56:00) [10]> а Date это уже другая ошибка.
не. та же самая. Jet просто любое неопределенное им название поля считает параметром... а если это еще и зарезервированное поле, то теоретически может даже если поле есть (смотря в каком порядке у него там проверка).
т.е. как себе представляю, на этапе определения типа параметра pData идет обращение к полю с каким он сравнивается (date. ну а как по другому определить?), поле не определяется/или ошибка на попытке, и jet делает вывод что это тоже параметр... а значения у него нет.
ну, в общем гдето так.
а вообще любое несоответствующее реальным полям выдаст такую ошибку. к примеру
SELECT [название которого нет]
"вернет"
EOleException : Отсутствует значение для одного или нескольких требуемых параметров
хотя какие здесь параметры? ;)
Anatoly Podgoretsky (2008-05-26 14:39:00) [11]
> да фик, знает, аффтар утверждает, что ругается на pDate,
> а не date
Так без соединения параметр автоматически определить нельзя, а Date это уже другая ошибка.
Anatoly Podgoretsky (2008-05-26 14:37:00) [12]> 123-ий (26.05.2008 13:45:07) [7]
Если ты не понял, то это был вопрос.
Ega23 (2008-05-26 14:29:00) [13]
> а лучше не называть так.
Естественно.
123-ий (2008-05-26 14:28:00) [14]знаю, как раз собирался исправить
Palladin (2008-05-26 14:10:00) [15]
> 123-ий (26.05.08 14:07) [15]
и замечание sniknik'a тоже учти, дело говорит, поля лучше так не называть
sniknik (2008-05-26 14:08:00) [16]> А может всё в Date упирается? Типа, зарезервированное слово и всё такое?
легко!
... where [date]=:pData ...
а лучше не называть так.
123-ий (2008-05-26 14:07:00) [17]Разобрался. Глюк действительно с connection'ом был, а я в тексте запроса ошибку искал. Спасибо большое за помощь.
Palladin (2008-05-26 14:06:00) [18]
> Ega23 © (26.05.08 14:04) [11]
да фик, знает, аффтар утверждает, что ругается на pDate, а не date
Palladin (2008-05-26 14:05:00) [19]соединение, конечно, на свое замени... можешь (и нужешь) методом формы сделать
Плохиш (2008-05-26 14:05:00) [20]
> 123-ий (26.05.08 14:01) [9]
Рекомендую всё-таки переписать код безwith PlansQuery do.