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

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

Неверный запрос (слишком мало параметров)


Страницы:   1 2

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)  


> Подскажите в чем ошибка???

В нежелании пользоваться отладчиком. Это первая причина. Вторая причина в желании сэкономить на программисте.


Страницы:   1 2

Наверх

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