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

Вниз

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

 
samborskijj ©   (2013-01-15 11:59) [0]

Доброго времени суток. 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.
Подскажите в чем ошибка???


 
O'ShinW ©   (2013-01-15 12:10) [1]

сам запрос работает? Как проверили?


 
samborskijj ©   (2013-01-15 12:12) [2]

Вот в том то и проблема. Что пишет слишком мало параметров. Я думаю может проблема в преобразовании дат в Access. В самом Accesse не проверял.


 
samborskijj ©   (2013-01-15 12:13) [3]

Вроде бы запрос и простой.


 
sniknik ©   (2013-01-15 12:29) [4]

проверь в запросе правильность имен полей, например этого - data_rasxoda


 
sniknik ©   (2013-01-15 12:31) [5]

> ("data1").AsDate := Начальная_дата;
пиши AsDateTime


 
Игорь Шевченко ©   (2013-01-15 12:35) [6]


> try
>  код_товара_для_анализа:=DataModule2.QТовар.FieldValues["kod_tovara"];
>
> except
> end;


кто научил ?


 
samborskijj ©   (2013-01-15 12:38) [7]

Имена правильные.


("data1").AsDate := Начальная_дата;
пиши AsDateTime

такая же ошибка выскакивает


 
samborskijj ©   (2013-01-15 12:38) [8]

Имена правильные.


("data1").AsDate := Начальная_дата;
пиши AsDateTime

такая же ошибка выскакивает


 
samborskijj ©   (2013-01-15 12:40) [9]


try
 код_товара_для_анализа:=DataModule2.QТовар.FieldValues["kod_tovara"];
except
end;

Никто. просто так удобнее. Если надо то вставлю сообщение. Но если честно то это не относится к моему вопросу.


 
Anatoly Pogoretsky   (2013-01-15 12:40) [10]

> samborskijj  (15.01.2013 11:59:00)  [0]


В запросе данных три
параметра, большего из
этого огрызка получить
нельзя, ну и также
непонятно зачем нужны
лишние переменные.
Сам же запрос скромно
скрыт.


 
samborskijj ©   (2013-01-15 12:43) [11]

Понятно что можно обойтись без переменных. Но просто, что бы в режиме отладки отслеживать передаются ли данные в запрос. Я тоже вижу что три параметра. Но выдает именно эту ошибку.


 
O'ShinW ©   (2013-01-15 12:44) [12]


> В самом Accesse не проверял.

а надо бы


 
samborskijj ©   (2013-01-15 12:44) [13]

Запрос еще раз повторю

select *
from Prixod
where kod_tovara=:kod_tovara
and data_rasxoda between :data1 and :data2


 
sniknik ©   (2013-01-15 12:48) [14]

> Никто. просто так удобнее. Если надо то вставлю сообщение. Но если честно то это не относится к моему вопросу.
ошибки прятать нельзя. зачем сообщение? убери "пустышку" сообщение уже есть.

> Имена правильные.
скажи "крекс пекс фекс" и три раза повернись вокруг оси. попробуй еще раз.

+
не показан код вноса запроса, может ты запрос добавляешь к существующему.


 
sniknik ©   (2013-01-15 12:53) [15]

> пиши AsDateTime
> такая же ошибка выскакивает
это не относится к той, но твой вариант написания может стать ошибкой... (не знаю как в XE3, может "сгладили", но в D7 есть "нюансы")


 
clickmaker ©   (2013-01-15 12:53) [16]

DataModule2.QАнализ_цены_в_приходе.SQL.Text; // что здесь?
DataModule2.QАнализ_цены_в_приходе.Execute;


 
samborskijj ©   (2013-01-15 12:55) [17]


> не показан код вноса запроса, может ты запрос добавляешь
> к существующему.

что значить добавляю к существующему?


 
Плохиш ©   (2013-01-15 12:55) [18]


> samborskijj ©   (15.01.13 11:59)  


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

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


 
sniknik ©   (2013-01-15 12:56) [19]

> что значить добавляю к существующему?
что непонятно в "не показан код"?


 
samborskijj ©   (2013-01-15 12:56) [20]

Запрос у меня прописан в Query. Я ему просто передаю значения.


 
samborskijj ©   (2013-01-15 12:57) [21]


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

если знаете ответ. то можно ответить а не язвить на форуме. отладчиком я пользовался.


 
sniknik ©   (2013-01-15 12:58) [22]

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


 
O'ShinW ©   (2013-01-15 12:59) [23]


> > В самом Accesse не проверял.
>
> а надо бы
>


что-то дает  в самом Accesse?
> select *
> from Prixod
> where kod_tovara= 0
> and data_rasxoda between 0 and 0


 
Плохиш ©   (2013-01-15 13:00) [24]

Я не лечу по фотографии соседа.
Учитывая многа букафф из [0], озвученной ошибки быть не должно, делаем вывод - нам подсовывают фотографию соседа.


 
sniknik ©   (2013-01-15 13:01) [25]

> озвученной ошибки быть не должно
по особенностям access(jet) она может быть ([4])


 
O'ShinW ©   (2013-01-15 13:02) [26]


> DataModule2.QАнализ_цены_в_приходе.ParamByName("kod_tovara").
> AsInteger:=код_това ра_для_анализа;

кстати, а тут нет пробела в оригинале?


 
samborskijj ©   (2013-01-15 13:03) [27]


> > > В самом Accesse не проверял.
> >
> > а надо бы
> >
>
>
> что-то дает  в самом Accesse?
> > select *
> > from Prixod
> > where kod_tovara= 0
> > and data_rasxoda between 0 and 0
>
>

ошибка не выскакивает


 
sniknik ©   (2013-01-15 13:05) [28]

> ошибка не выскакивает
выскакивает предложение что то ввести... проигнорированное. нет?


 
Anatoly Pogoretsky   (2013-01-15 13:05) [29]

> samborskijj  (15.01.2013 12:40:09)  [9]

except
end;

Конечно удобно никто с
ошибками не тревожит


 
samborskijj ©   (2013-01-15 13:06) [30]


> > samborskijj  (15.01.2013 12:40:09)  [9]
>
> except
> end;
>
> Конечно удобно никто с
> ошибками не тревожит

=) Ну там вроде и ошибок не должно быть. Просто если не туда нажал то она и не выскочит.

Всем большое спасибо. Разобрался.


 
Anatoly Pogoretsky   (2013-01-15 13:07) [31]

> samborskijj  (15.01.2013 12:43:11)  [11]

Ты ничего не можешь видеть,
поскольку запроса нет


 
O'ShinW ©   (2013-01-15 13:08) [32]

*синтаксис м/б ошибочен
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)


 
O'ShinW ©   (2013-01-15 13:08) [33]


> Всем большое спасибо. Разобрался.

А сказать?


 
Anatoly Pogoretsky   (2013-01-15 13:09) [34]

> samborskijj  (15.01.2013 12:44:13)  [13]

Зачем ты показываешь
запрос чтения, а не вставки


 
samborskijj ©   (2013-01-15 13:10) [35]


>
> > Всем большое спасибо. Разобрался.
>
> А сказать?


=) Банальная ошибка. Не верное имя поля.


 
sniknik ©   (2013-01-15 13:13) [36]

> for i := 0 to DataModule2.QАнализ_цены_в_приходе.ParamCount - 1 do
возможный, классический, вариант запроса -
select * from Prixod where kod_tovara=? and data_rasxoda between ? and ?
что будет в ParamCount?

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

хотя, если он там найдет к примеру 6 параметров, это будет показательный тест.


 
sniknik ©   (2013-01-15 13:16) [37]

> =) Банальная ошибка. Не верное имя поля.
?
> Имена правильные.
> такая же ошибка выскакивает
?

наверняка "крекс пекс фекс" помогло.



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

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

Наверх




Память: 0.53 MB
Время: 0.004 c
2-1358698446
Pcrepair
2013-01-20 20:14
2013.10.06
контрол имеющий пару строка-число


15-1367086920
О-Сознание
2013-04-27 22:22
2013.10.06
Поиск на Хабре.


3-1293263111
dik59
2010-12-25 10:45
2013.10.06
Создание домена


15-1366649723
Rouse_
2013-04-22 20:55
2013.10.06
Нужен третейский судья :)


2-1358661812
N.Cage
2013-01-20 10:03
2013.10.06
Как убрать символы переноса в ячейке StringGrid





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