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

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

21.03.2018, 20:56. Показов 3275. Ответов 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
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
22.03.2018, 00:42
Примерная реализация фильтра по дизайнерам в прицепленной форме.
(для замены формы необходимо закрыть проект в Дельфи, заменить в папке с проектом два файла из прицепа и затем вновь открыть проект)
Вложения
Тип файла: zip unit1.zip (3.0 Кб, 1 просмотров)
0
5975 / 4550 / 1095
Регистрация: 29.08.2013
Сообщений: 28,169
Записей в блоге: 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
1076 / 989 / 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
6849 / 4676 / 1464
Регистрация: 14.04.2014
Сообщений: 20,670
Записей в блоге: 21
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
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru