Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2016, 13:14   #1
martofpain
Пользователь
 
Регистрация: 15.03.2016
Сообщений: 36
По умолчанию Вывести все значение по определенно дате из BDGrid

Есть компонент BDGrid, туда берутся данные из БД MySQL и там есть поле Date, как сделать так чтоб я вбивал новую дату в DateTimePicker и она сравнивала то что я ввел с тем что в табличке и выводила мне все строки с данной датой, тут вроде запрос нужен но не могу понять как его сделать
martofpain вне форума Ответить с цитированием
Старый 15.03.2016, 13:37   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, не "BDGrid", а DBGrid
во-вторых, сам по себе DBGrid данных не содержит, это всего лишь таблица, визуализирующая данные, которые находятся в связанном с ней наборе данных (DataSet) - это либо таблица, либо запрос...
в-третьих, по сути вопроса, вам на DateTimePicker нужно повесить обработчик, если изменилась дата, менять данный в таблице.
это можно сделать как локально (смотрите фильтрацию в датасете), либо с помощью запроса к БД (обновление связанного с гридом датасета).
И то и другое несложно.

Если ещё непонятно, спрашивайте.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.03.2016, 13:14   #3
martofpain
Пользователь
 
Регистрация: 15.03.2016
Сообщений: 36
По умолчанию

спасибо за объяснение, но я все же не понимаю как сделать этот обработчик, просто вообще не представляю как его сделать
martofpain вне форума Ответить с цитированием
Старый 16.03.2016, 13:35   #4
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

где DTPVal параметр в который передается значение DateTimePicker
Код:
ADOQuery1.sql.text:='select * from таблица where Date=DTPVal';
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 16.03.2016, 13:50   #5
martofpain
Пользователь
 
Регистрация: 15.03.2016
Сообщений: 36
По умолчанию

не получаеться я подключаю через MyDAC, это имеет значение??
martofpain вне форума Ответить с цитированием
Старый 16.03.2016, 13:55   #6
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Цитата:
Сообщение от martofpain Посмотреть сообщение
не получаеться я подключаю через MyDAC, это имеет значение??
что не получилось то??
какая ошибка что делали чтоб получилось??
не форум экстрасенсов, с такой постановкой вопроса вам на ТНТ нужно обращаться.
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 16.03.2016, 14:50   #7
martofpain
Пользователь
 
Регистрация: 15.03.2016
Сообщений: 36
По умолчанию

ну для начало я не понимаю что такое DTPVal, можешь объяснить??
martofpain вне форума Ответить с цитированием
Старый 16.03.2016, 15:28   #8
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

Это Параметр
Вот еще

запрос вам нужен с параметром
Терпение!Дежурный экстрасенс скоро свяжется с вами!
Dvoishnik вне форума Ответить с цитированием
Старый 16.03.2016, 15:39   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

только перед именем параметра в запросе должно быть двоеточие:
Код:
ADOQuery1.sql.text:='select * from таблица where Date=:DTPVal';
ну и выглядеть получение данных через запрос может примерно так:
Код:
var dt :TDateTime;
begin
  ADOQuery1.Close;
  ADOQuery1.sql.text:='select * from таблица where Date=:DTPVal';
  dt := Trunc(DateTimePicker1.Date);
  ADOQuery1.Params.ParamByName(DTPVal).AsValue := dt;
  ADOQuery1.Open
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 17.03.2016, 05:29   #10
martofpain
Пользователь
 
Регистрация: 15.03.2016
Сообщений: 36
По умолчанию

вот что у меня получилось
Код:
var
  dt :TDateTime;
begin
  myQuery1.Close;
  myQuery1.sql.text:='select * from Goods where date=:Date1';
  dt := Trunc(DateTimePicker3.Date);
  myQuery1.Params.ParamByName('Date1').AsDate := dt;
  myQuery1.Open
но нечего не происходит. Дату по которой я хочу получить строки я ввожу в DateTimePicker3 а имя параметра в myQuery1, Date1.
В самом myQuery1 запрос такого вида select * from Goods where date=:Date1
Что не так???

Последний раз редактировалось martofpain; 17.03.2016 в 05:30. Причина: повторение слов
martofpain вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переменной t присвоить значение true, если дата d1, m1 предшествует (в рамках года) дате d2, m2, и значение false иначе Andrew5674 Паскаль, Turbo Pascal, PascalABC.NET 4 11.12.2013 21:37
Задача. Вывести именинников по введенной дате kocctik Помощь студентам 0 18.05.2013 15:18
Определенно type letters=set of 'a'..'z' xhatex Помощь студентам 15 21.01.2013 01:32
Максимальное значение по дате ZUZA Microsoft Office Excel 5 05.07.2008 19:30
как из одной BDgrid скопировать выделенное поле в другую BDgrid Шурик БД в Delphi 7 03.05.2007 14:24