![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Неверный запрос (слишком мало параметров)
samborskijj © (2013-01-15 11:59:00)Доброго времени суток. Delphi XE3 база данных Access У меня есть запрос
select *
from Prixod
where kod_tovara=:kod_tovara
and data_rasxoda between :data1 and :data2
код в программе
var
код_товара_для_анализа:integer;
Начальная_дата, конечная_дата:TDate;
begin
try
код_товара_для_анализа:=DataModule2.QТовар.FieldValues['kod_tovara'];
except
end;
Начальная_дата:=AdvSmoothDatePicker1.Date;
конечная_дата:=AdvSmoothDatePicker2.Date;
DataModule2.QАнализ_цены_в_приходе.ParamByName('kod_tovara').AsInteger:=код_това ра_для_анализа;
DataModule2.QАнализ_цены_в_приходе.ParamByName('data1').AsDate := Начальная_дата;
DataModule2.QАнализ_цены_в_приходе.ParamByName('data2').AsDate := конечная_дата;
DataModule2.QАнализ_цены_в_приходе.Execute;
При выполнении кода пишет
Слишком мало параметров. Требуется 4.
Подскажите в чем ошибка???
sniknik (2013-01-15 13:16:00) [1]> =) Банальная ошибка. Не верное имя поля.
?
> Имена правильные.
> такая же ошибка выскакивает
?
наверняка "крекс пекс фекс" помогло.
sniknik (2013-01-15 13:13:00) [2]> for i := 0 to DataModule2.QАнализ_цены_в_приходе.ParamCount - 1 do
возможный, классический, вариант запроса -
select * from Prixod where kod_tovara=? and data_rasxoda between ? and ?
что будет в ParamCount?
это к тому, что не все, что дельфя определила как параметр будет параметром в движке, и наоборот.
хотя, если он там найдет к примеру 6 параметров, это будет показательный тест.
samborskijj (2013-01-15 13:10:00) [3]
>
> > Всем большое спасибо. Разобрался.
>
> А сказать?
=) Банальная ошибка. Не верное имя поля.
Anatoly Pogoretsky (2013-01-15 13:09:00) [4]> samborskijj (15.01.2013 12:44:13) [13]
Зачем ты показываешь
запрос чтения, а не вставки
O'ShinW (2013-01-15 13:08:00) [5]
> Всем большое спасибо. Разобрался.
А сказать?
O'ShinW (2013-01-15 13:08:00) [6]*синтаксис м/б ошибочен
1. ShowMessage( inttostr( DataModule2.QАнализ_цены_в_приходе.ParamCount ));
2.
for i := 0 to DataModule2.QАнализ_цены_в_приходе.ParamCount - 1 do
ShowMessage(DataModule2.QАнализ_цены_в_приходе.Parameters[i].Name)
ShowMessage(DataModule2.QАнализ_цены_в_приходе.Parameters[i].Value)
Anatoly Pogoretsky (2013-01-15 13:07:00) [7]> samborskijj (15.01.2013 12:43:11) [11]
Ты ничего не можешь видеть,
поскольку запроса нет
samborskijj (2013-01-15 13:06:00) [8]
> > samborskijj (15.01.2013 12:40:09) [9]
>
> except
> end;
>
> Конечно удобно никто с
> ошибками не тревожит
=) Ну там вроде и ошибок не должно быть. Просто если не туда нажал то она и не выскочит.
Всем большое спасибо. Разобрался.
Anatoly Pogoretsky (2013-01-15 13:05:00) [9]> samborskijj (15.01.2013 12:40:09) [9]
except
end;
Конечно удобно никто с
ошибками не тревожит
sniknik (2013-01-15 13:05:00) [10]> ошибка не выскакивает
выскакивает предложение что то ввести... проигнорированное. нет?
samborskijj (2013-01-15 13:03:00) [11]
> > > В самом Accesse не проверял.
> >
> > а надо бы
> >
>
>
> что-то дает в самом Accesse?
> > select *
> > from Prixod
> > where kod_tovara= 0
> > and data_rasxoda between 0 and 0
>
>
ошибка не выскакивает
O'ShinW (2013-01-15 13:02:00) [12]
> DataModule2.QАнализ_цены_в_приходе.ParamByName('kod_tovara').
> AsInteger:=код_тов а ра_для_анализа;
кстати, а тут нет пробела в оригинале?
sniknik (2013-01-15 13:01:00) [13]> озвученной ошибки быть не должно
по особенностям access(jet) она может быть ([4])
Плохиш (2013-01-15 13:00:00) [14]Я не лечу по фотографии соседа.
Учитывая многа букафф из [0], озвученной ошибки быть не должно, делаем вывод - нам подсовывают фотографию соседа.
O'ShinW (2013-01-15 12:59:00) [15]
> > В самом Accesse не проверял.
>
> а надо бы
>
что-то дает в самом Accesse?
> select *
> from Prixod
> where kod_tovara= 0
> and data_rasxoda between 0 and 0
sniknik (2013-01-15 12:58:00) [16]> Запрос у меня прописан в Query.
значит остался единственный вариант... может не "докрутил" по своей оси? попробуй крутиться в другую сторону. и обязательно правильно, и вслух, проговаривай слова.
samborskijj (2013-01-15 12:57:00) [17]
>
> В нежелании пользоваться отладчиком. Это первая причина.
> Вторая причина в желании сэкономить на программисте.
если знаете ответ. то можно ответить а не язвить на форуме. отладчиком я пользовался.
sniknik (2013-01-15 12:56:00) [18]> что значить добавляю к существующему?
что непонятно в "не показан код"?
samborskijj (2013-01-15 12:56:00) [19]Запрос у меня прописан в Query. Я ему просто передаю значения.
Плохиш (2013-01-15 12:55:00) [20]
> samborskijj © (15.01.13 11:59)
> Подскажите в чем ошибка???
В нежелании пользоваться отладчиком. Это первая причина. Вторая причина в желании сэкономить на программисте.