Форум: "Начинающим";
Текущий архив: 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