Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
 Аватар для son_yaa
0 / 0 / 1
Регистрация: 10.03.2018
Сообщений: 51

Запрос ADOQuery в Делфи не видит параметр и не выполняется

21.03.2018, 20:56. Показов 3154. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне нужно сделать запрос на выборку записей по условию что поле с именами Дизайнеров не пустое и выводиться должны заказы за текущий месяц (т.е. у меня двойное условие).
Вроде прописала все, но ошибку выдает.

Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.Button1Click(Sender: TObject);
var  data1, data2: TDateTime;
     Im: string;
begin
VypolnDizajner.Active:=false;
VypolnDizajner.SQL.Text := 'SELECT Data, Дизайнер, ВидПолиграфии, Описание, Стоимость, Себестоимость,Прибыль FROM ZakazPoligraf WHERE Im>'' and  Data between :data1 and :data2';
VypolnDizajner.Parameters.ParamByName('Im').Value := Tzakaz.FieldByName('Дизайнер').AsString;
VypolnDizajner.Parameters.ParamByName('data1').Value := DateTimePicker1.DateTime;
VypolnDizajner.Parameters.ParamByName('data2').Value := DateTimePicker2.DateTime;
VypolnDizajner.Active:=true;
end;
Миниатюры
Запрос ADOQuery в Делфи не видит параметр и не выполняется  
Вложения
Тип файла: rar Макет.rar (568.1 Кб, 4 просмотров)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.03.2018, 20:56
Ответы с готовыми решениями:

Запрос ADOQuery в Делфи 7 выводит не все записи
Появилась это проблема после того как я заполнила таблицу с клиентами. По началу думала что проблема в том что в поле FIO у меня появились...

Делфи БД - Запрос в параметр
Можно ли результат выполнения sql запроса «select count(pole) from table1» занести в параметр : param1 через запрос. Т.е. мне нужно, чтобы...

Не выполняется SQL-запрос в делфи
Доброе время суток! У меня возникла след ошибка:при нажатии на кнопку страница должен выполниться запрос и отобразиться список покупателей,...

6
1075 / 988 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
22.03.2018, 00:42
Примерная реализация фильтра по дизайнерам в прицепленной форме.
(для замены формы необходимо закрыть проект в Дельфи, заменить в папке с проектом два файла из прицепа и затем вновь открыть проект)
Вложения
Тип файла: zip unit1.zip (3.0 Кб, 1 просмотров)
0
5647 / 4489 / 1089
Регистрация: 29.08.2013
Сообщений: 27,977
Записей в блоге: 3
22.03.2018, 01:02
Цитата Сообщение от son_yaa Посмотреть сообщение
WHERE Im>'' and
это что за синтаксис?
так делать нельзя

во первых параметр начинается с двоеточия
во вторых параметр - это ПАРАМЕТР, а у вас тут имя колонки

то есть сделать FIO= :param можно, а :param=FIO нельзя
0
 Аватар для son_yaa
0 / 0 / 1
Регистрация: 10.03.2018
Сообщений: 51
22.03.2018, 07:38  [ТС]
не совсем поняла(((
так мне и нужно сравнивать значения из этого столбца.
но я не знаю как это записать.
помогите разобраться

Добавлено через 4 минуты
я использую ComboBox, ,т.к. мне нужно отредактировать данные! а с DBLookupComboBox этого сделать нельзя
и база всеравно не конектится по тому Unit что вы сбросили

вот исправила, но не работает всеравно

Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.Button1Click(Sender: TObject);
var  data1, data2: TDateTime;
     Imya: string;
begin
VypolnDizajner.Active:=false;
VypolnDizajner.SQL.Text := 'SELECT Data, Дизайнер, ВидПолиграфии, Описание, Стоимость, Себестоимость,Прибыль FROM ZakazPoligraf WHERE :Imya>'' and  Data between :data1 and :data2';
VypolnDizajner.Parameters.ParamByName('Imya').Value := Tzakaz.FieldByName('Дизайнер').AsString;
VypolnDizajner.Parameters.ParamByName('data1').Value := DateTimePicker1.DateTime;
VypolnDizajner.Parameters.ParamByName('data2').Value := DateTimePicker2.DateTime;
VypolnDizajner.Active:=true;
end;
0
1075 / 988 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
22.03.2018, 09:21
Цитата Сообщение от son_yaa Посмотреть сообщение
так мне и нужно сравнивать значения из этого столбца.
А столбца этого при сравнении не видно... Его надо включать в сравнение:
Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.Button1Click(Sender: TObject);
var  data1, data2: TDateTime;
     Imya: string;
begin
  VypolnDizajner.SQL.Text := 'SELECT Data, Дизайнер, ВидПолиграфии, Описание, Стоимость, Себестоимость,'+
      'Прибыль FROM   ZakazPoligraf WHERE Дизайнер = :Imya and Data between :data1 and :data2';
  VypolnDizajner.Parameters.ParamByName('Imya').Value := ComboBox1.Text;
  VypolnDizajner.Parameters.ParamByName('data1').Value := DateTimePicker1.DateTime;
  VypolnDizajner.Parameters.ParamByName('data2').Value := DateTimePicker2.DateTime;
  VypolnDizajner.Open;
end;
Добавлено через 7 минут
Цитата Сообщение от son_yaa Посмотреть сообщение
Tzakaz.FieldByName('Дизайнер').AsString
При выборе из Комбобокса ФИО в этом датасете (Tzakaz) ничего не происходит, т.к. после заполнения никакой связи между Tzakaz и комбобоксом нет. Поэтому применение датасета для передачи значения не оправдано (в нашем случае его указатель всегда в конце набора данных).
0
 Аватар для son_yaa
0 / 0 / 1
Регистрация: 10.03.2018
Сообщений: 51
22.03.2018, 20:12  [ТС]
с этим разобралась уже. У меня теперь проблема в том что я не правильно ,видимо , ставлю условие. Мне нужно выводить в таблицу работы нескольких дизайнеров, при выборе конкретного дизайнера у меня выводятся те заказы которые он обработал. Но в таблице у меня есть и такие заказы которые дизайнер не обрабатывал (т.е. поле 'Дизайнер' не заполнено).
вот какое условие я ставлю, но оно не работает:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.CheckBox1Click(Sender: TObject);
var  data1, data2: TDateTime;
     imya, im: string;
begin
VypolnDizajner.SQL.Text := 'SELECT Дизайнер, Data, ВидПолиграфии, Описание, Стоимость, Себестоимость,Прибыль FROM ZakazPoligraf WHERE Дизайнер=:im Data between :data1 and :data2 order by Data asc';
Tdizajner.FieldByName('fio1').AsString:= imya;
if (imya >'') then
VypolnDizajner.Parameters.ParamByName('im').Value := imya;
VypolnDizajner.Parameters.ParamByName('data1').Value := DateTimePicker1.DateTime;
VypolnDizajner.Parameters.ParamByName('data2').Value := DateTimePicker2.DateTime;
VypolnDizajner.Active:=true;
end;
Вложения
Тип файла: rar Новая папка.rar (512.8 Кб, 1 просмотров)
0
 Аватар для krapotkin
6831 / 4660 / 1461
Регистрация: 14.04.2014
Сообщений: 20,607
Записей в блоге: 20
22.03.2018, 21:15
вообще бы зачем каждый раз заново заполнять SQL.text ??
он же не меняется. один раз заполнили и оставьте в покое

а в приведенном куске
Delphi
1
 Tdizajner.FieldByName('fio1').AsString:= imya;
это вообще что??
imya - локальная переменная. на момент выполнения содержит какой-то мусор.
этот мусор вы пытаетесь запихать в ADOTable Tdizajner (очень плохое название. с большой Т в делфи принято именовать классы)
перед этим кстати нужно сначала Tdizajner.Edit; а после Tdizajner.Post...
потом если imya>'' (вот тоже вопрос - а почему не использовать <> ???)
мы тот же мусор суем в параметр

кстати, если перестать переписывать SQL каждый раз, то ОН ТАМ ОСТАНЕТСЯ.
и если в следующий раз imya='' (ну случайно например)
то параметр останется старым. так что неплохо бы его очищать
Delphi
1
2
3
4
if (imya = '') then
  VypolnDizajner.Parameters.ParamByName('im').Clear
else
  VypolnDizajner.Parameters.ParamByName('im').Value := imya;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.03.2018, 21:15
Помогаю со студенческими работами здесь

Запрос ADOQuery внутри другого ADOQuery реален?
Помогите сформировать запрос для двух ADOQuery. Есть 2 таблицы БД mssql: sotrudniki , table_hlp(Вспомогательная таблица для делания...

ADOQuery параметр
Здравствуйте! Подскажите, пожалуйста какой DataType и Type надо выбрать в параметре ADOQuery, чтобы он не ругался на десятичное число?

Параметр adoquery не найден
Добрый вечер. Пытаюсь вставить в БД информацию з компонентов edit и datetimepicker, но выскакивает ошибка Неправильно определен объект...

Неправильно выполняется скрипт ADOQuery (Delphi7)
Добрый день, пытаюсь выполнить простенький SQL скрипт: procedure TForm1.Button1Click(Sender: TObject); var date1, date2:string; ...

Фильтрация в Adoquery Делфи
Мир всем и привет ! скажите пожалуйста, какой способ лучше использовать для быстрого поиска и фильтрации данных в Query ? этот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Деплой Flask приложения
py-thonny 23.06.2025
За годы работы с Flask я натыкался на одни и те же грабли достаточно часто, чтобы наконец научится их обходить. И сегодня хочу поделится опытом, который сбережет вам немало нервных клеток. Начнем с. . .
WebAssembly и контейнеры в .NET Aspire для оркестрации распределенных архитектур
ArchitectMsa 23.06.2025
Я наблюдаю, как WebAssembly (или просто WASM) постепенно выходит за рамки своего первоначального предназначения — исполнения кода на стороне браузера. Теперь эта технология проникает в серверную. . .
Непрерывная интеграция для пакета Python
Mr. Docker 22.06.2025
Было 4 часа утра пятницы, когда я выпустил новую версию нашей внутренней библиотеки для обработки данных. Релиз 0. 5. 2 содержал небольшой фикс для обработки дат в ISO формате, что может пойти не так?. . .
Продвинутый ETL на C# из OLTP БД в хранилище
stackOverflow 22.06.2025
Работая в сфере корпоративной аналитики, я постоянно сталкиваюсь с одним и тем же - нужны чистые, структурированные и, главное, свежие данные. Без них современные аналитические системы, машинное. . .
Мастер-класс по микросервисам на Node.js
Reangularity 21.06.2025
Node. js стал одной из самых популярных платформ для микросервисной архитектуры не случайно. Его неблокирующая однопоточная модель и событийно-ориентированный подход делают его идеальным для. . .
Управление Arduino из WPF приложения
Wired 21.06.2025
Зачем вообще связывать Arduino с WPF-приложением? Казалось бы, у Arduino есть собственная среда разработки, своя экосистема, свои способы управления. Однако при создании серьезных проектов. . .
Звёздная пыль
kumehtar 20.06.2025
Я просто это себе представляю: как создавался этот мир. Как энергия слипалась в маленькие частички. Как они собирались в первые звёзды, как во вселенной впервые появился Свет. Как эти звёзды. . .
Создание нейросети с PyTorch
AI_Generated 19.06.2025
Ключевое преимущество PyTorch — его питоновская натура. В отличие от TensorFlow, который изначально был построен как статический вычислительный граф, PyTorch предлагает динамический подход. Это. . .
JWT аутентификация в ASP.NET Core
UnmanagedCoder 18.06.2025
Разрабатывая веб-приложения, я постоянно сталкиваюсь с дилеммой: как обеспечить надежную аутентификацию пользователей без ущерба для производительности и масштабируемости? Классические подходы на. . .
Краткий курс по С#
aaLeXAA 18.06.2025
Здесь вы найдете все необходимые функции чтоб написать програму на C# Задание 1: КЛАСС FORM 1 public partial class Form1 : Form { Spisok listin = new Spisok(); . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
OSZAR »