Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.06.22;
Скачать: [xml.tar.bz2];

Вниз

Parameter not found   Найти похожие ветки 

 
123-ий   (2008-05-26 13:12) [0]

Пользуюсь 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. В таблице поле есть. Значение параметру присваивается нормальное. В чём может быть дело?


 
Palladin ©   (2008-05-26 13:15) [1]


> while PlansQuery.Eof = false do

бред


> PlansQuery.First;

бред

пробуй так

with PlansQuery do
begin
close;
Prepared := true;
SQL.Text:="select * from plans where date=:pDate order by company");
Parameters.ParamByName("pDate").Value := Date;
open;
end;


 
Ega23 ©   (2008-05-26 13:40) [2]

Сильно подозреваю, что парсеру параметров не нравится конец строки после :pDate. Попробуй пробел туда добавить.
А вообще - у SQL есть свойство Text.
И, кстати, нифига непонятно: зачем в даннос случае Prepared использовать? Ведь запрос однократно выполняется...


 
123-ий   (2008-05-26 13:41) [3]

Попробовал. Всё равно not found. Поэксперементировал - если в текст запроса вместо pDate подставить к примеру  pData, в тексте ошибки всё равно pDate. А вот если в строке, где параметру присваивается значение вместо pDate подставить pData - в ошибке будет ругаться что не найден параметр pData. Следовательно ругается на строку:

> Parameters.ParamByName("pDate").Value := Date;

P.S. не знаю, даст ли это что-нибудь


 
Palladin ©   (2008-05-26 13:43) [4]

кто провайдер?


 
Anatoly Podgoretsky ©   (2008-05-26 13:44) [5]

> 123-ий  (26.05.2008 13:41:03)  [3]

ParamCheck


 
123-ий   (2008-05-26 13:44) [6]

Jet 4


 
123-ий   (2008-05-26 13:45) [7]


> ParamCheck
Бесполезно :(


 
Palladin ©   (2008-05-26 13:50) [8]

а у тебя свойство Connection назначено ли?


 
123-ий   (2008-05-26 14:01) [9]

Да, назначено. Потому что другие запросы с помощью PlansQuery выполняются вполне успешно.


 
Palladin ©   (2008-05-26 14:04) [10]

А мне сдается, что нет... хотя сейчас и проверим, выполни следующее

Procedure Test0003;
var
 q:TADOQuery;
begin
 q:=TADOQuery.Create(Nil);
 Try
  q.Connection:=Form1.ADOConnection1;
  q.SQL.Text:="select * from plans where date=:pData order by company";
  q.Parameters.ParamByName("pData").Value := Date;
  q.open;
 Finally
  q.Free;
 End;
end;


 
Ega23 ©   (2008-05-26 14:04) [11]

А может всё в Date упирается? Типа, зарезервированное слово и всё такое?


 
Плохиш ©   (2008-05-26 14:05) [12]


> 123-ий   (26.05.08 14:01) [9]

Рекомендую всё-таки переписать код без with PlansQuery do.


 
Palladin ©   (2008-05-26 14:05) [13]

соединение, конечно, на свое замени... можешь (и нужешь) методом формы сделать


 
Palladin ©   (2008-05-26 14:06) [14]


> Ega23 ©   (26.05.08 14:04) [11]

да фик, знает, аффтар утверждает, что ругается на pDate, а не date


 
123-ий   (2008-05-26 14:07) [15]

Разобрался. Глюк действительно с connection"ом был, а я в тексте запроса ошибку искал. Спасибо большое за помощь.


 
sniknik ©   (2008-05-26 14:08) [16]

> А может всё в Date упирается? Типа, зарезервированное слово и всё такое?
легко!
... where [date]=:pData ...
а лучше не называть так.


 
Palladin ©   (2008-05-26 14:10) [17]


> 123-ий   (26.05.08 14:07) [15]

и замечание sniknik"a тоже учти, дело говорит, поля лучше так не называть


 
123-ий   (2008-05-26 14:28) [18]

знаю, как раз собирался исправить


 
Ega23 ©   (2008-05-26 14:29) [19]


> а лучше не называть так.


Естественно.


 
Anatoly Podgoretsky ©   (2008-05-26 14:37) [20]

> 123-ий  (26.05.2008 13:45:07)  [7]

Если ты не понял, то это был вопрос.


 
Anatoly Podgoretsky ©   (2008-05-26 14:39) [21]


> да фик, знает, аффтар утверждает, что ругается на pDate,
>  а не date

Так без соединения параметр автоматически определить нельзя, а Date это уже другая ошибка.


 
sniknik ©   (2008-05-26 14:56) [22]

> а Date это уже другая ошибка.
не. та же самая. Jet просто любое неопределенное им название поля считает параметром... а если это еще и зарезервированное поле, то теоретически может даже если поле есть (смотря в каком порядке у него там проверка).
т.е. как себе представляю, на этапе определения типа параметра pData идет обращение к полю с каким он сравнивается (date. ну а как по другому определить?), поле не определяется/или ошибка на попытке, и jet делает вывод что это тоже параметр... а значения у него нет.
ну, в общем гдето так.

а вообще любое несоответствующее реальным полям выдаст такую ошибку. к примеру
SELECT [название которого нет]
"вернет"
EOleException : Отсутствует значение для одного или нескольких требуемых параметров
хотя какие здесь параметры? ;)


 
Palladin ©   (2008-05-26 15:03) [23]

а в ацессе спровоцирует InputBox :)


 
123-ий   (2008-05-26 15:09) [24]


> Anatoly Podgoretsky ©   (26.05.08 14:37) [20]
Даже если это был вопрос, это мне не помогло :)


 
123-ий   (2008-05-26 15:10) [25]

В смысле ParamCheck - не помог.


 
Anatoly Podgoretsky ©   (2008-05-26 15:15) [26]

В смысле ты так и не сообщил его значение, а поможет или нет и речи не стояло.


 
sniknik ©   (2008-05-26 15:25) [27]

> В смысле ParamCheck - не помог.
оно и не должно было помочь. просто его значение (фалсе) это еще одна возможность почему может происходить обсуждаемая ошибка...

информацию ты должен был привести как можно более полную, и раз уж не догадался то ответить на уточняющие вопросы...
вот к примеру о пользе инфы, пока ты не сказал
123-ий   (26.05.08 13:44) [6]
> Jet 4
все мои выкладки не имели смысла...
я видел вопрос [0] когда еще не было ни одного поста... открыл, прочитал...пожал плечами, подумал "чудеса случаются", и закрыл ветку... (ну а что можно сказать в отсутствии нужной информации?)


 
Anatoly Podgoretsky ©   (2008-05-26 15:26) [28]


> (ну а что можно сказать в отсутствии нужной информации?)

Можно сказать ССЗБ


 
Palladin ©   (2008-05-26 15:49) [29]


> sniknik ©   (26.05.08 15:25) [27]

а чудес не быват. а опыт у меня в такой ошибке имелся. :) я"ж не божественное существо, тоже соединение пару раз неназначил, зато теперь знаю откуда могут расти ноги у этой ошибки.


 
sniknik ©   (2008-05-26 16:01) [30]

> тоже соединение пару раз неназначил
да я помню обсуждения порожденные этим поводом, но тут код не тот... вот если бы он внес запрос, а после этого, перед открытием стал бы коннект присваивать... тогда да, тогда даже инфа о используемом провайдере не понадобилась бы.

> зато теперь знаю откуда могут расти ноги у этой ошибки.
да из всего тела... %)


 
123-ий   (2008-05-26 17:11) [31]


> Anatoly Podgoretsky ©   (26.05.08 15:15) [26]

Ну когда сказали ParamCheck я сделал ParamCheck := true; и это не помогло :)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2008.06.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.042 c
2-1212036678
buzb
2008-05-29 08:51
2008.06.22
Как разукрасить листбокс


15-1209673346
Kolan
2008-05-02 00:22
2008.06.22
Помогите с формулой расчета аннуитета&#133


2-1211959348
DmT
2008-05-28 11:22
2008.06.22
Терминал на канве


15-1210154212
brrr
2008-05-07 13:56
2008.06.22
Сбор системного блока


15-1210072929
БарЛог
2008-05-06 15:22
2008.06.22
TWebBrowser. Нажатие кнопки на web-странице





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский