Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Parameter not found


Страницы:   1 2

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.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо