Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 20.12.2016
Сообщений: 136

Фильтр дат в таблице между DateTimePicker1.DateTime и DateTimePicker2.DateTime

05.02.2017, 20:28. Показов 2586. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не пинайте сильно. Начинающий. Не срабатывает выбор дат из таблицы. База GDB Firebird. Поле таблицы DATAV в базе тип поля Date.
DateTimePicker1.DateTime и DateTimePicker2.DateTime в King - dtkDate

фильтр не срабатывает
На всякий случай весь код выложил. Еще раз говорю - начинающий. Книжек по делфи не прочитал ни одной еще, но собираюсь.


Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
unit Unit1;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.Menus, Vcl.ExtCtrls,
  Vcl.Grids, Vcl.DBGrids, IBX.IBDatabase, IBX.IBQuery, IBX.IBCustomDataSet,
  IBX.IBTable, Vcl.StdCtrls, Vcl.Imaging.jpeg, Vcl.Mask, DBCtrlsEh, Vcl.ComCtrls,
  System.Rtti, System.Bindings.Outputs, Vcl.Bind.Editors, Data.Bind.EngExt,
  Vcl.Bind.DBEngExt, Data.Bind.Components, Data.Bind.DBScope;
 
type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    Button1: TButton;
    Button2: TButton;
    Button4: TButton;
    Button5: TButton;
    IBTable1: TIBTable;
    IBQuery1: TIBQuery;
    IBDatabase1: TIBDatabase;
    IBTransaction1: TIBTransaction;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Splitter1: TSplitter;
    Edit1: TEdit;
    ComboBox1: TComboBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Button3: TButton;
    DateTimePicker1: TDateTimePicker;
    DateTimePicker2: TDateTimePicker;
    procedure N3Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
uses Unit2, Unit3, Unit4;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
IBTable1.Insert;
Form2.Show;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
Form3.Show;
end;
 
[I]procedure TForm1.Button3Click(Sender: TObject);
begin
IBQuery1.SQL.Text:='SELECT * FROM BAZA WHERE Datav BETWEEN :Date1 AND :Date2';
IBQuery1.ParamByName('Date1').AsDatetime:=DateTimePicker1.DateTime;
IBQuery1.ParamByName('Date2').AsDatetime:=DateTimePicker2.DateTime;
IBQuery1.Open;
end;[/I]
 
procedure TForm1.Button4Click(Sender: TObject);
begin
Form4.Show;
end;
 
procedure TForm1.Button5Click(Sender: TObject);
begin
if IBTable1.state in [dsedit, dsinsert] then IBTable1.Post;
Form1.Close;
end;
 
procedure TForm1.Edit1Change(Sender: TObject);
begin
if Length(Edit1.Text) > 0 then
begin
IBTable1.Filtered:=false;
IBTable1.Filter:=Combobox1.Text + ' LIKE ' + #39 + Edit1.Text + '%' + #39;
IBTable1.Filtered:=true;
end
else IBTable1.Filtered:=false;
end;
 
procedure TForm1.N3Click(Sender: TObject);
begin
IBTable1.Insert;
Form2.Show;
end;
 
procedure TForm1.N4Click(Sender: TObject);
begin
Form3.Show;
end;
 
procedure TForm1.N6Click(Sender: TObject);
begin
IBTable1.Delete;
end;
 
procedure TForm1.N9Click(Sender: TObject);
begin
if IBTable1.state in [dsedit, dsinsert] then IBTable1.Post;
Form1.Close;
end;
 
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.02.2017, 20:28
Ответы с готовыми решениями:

DateTimePicker1 и DateTimePicker2. Найти совпадение дат в таблице
Идея следующая. Запрет на заселение в один номер при условии, что есть совпадение DateTimePicker3 (дата заезда), или DateTimePicker2 (дата...

Можно ли создать поле в таблице с именем datetime ? типа datetime
Добрый день ! вопрос почти чайника : Можно ли создать поле в таблице с именем datetime ? типа datetime есть в одной бд ms sql...

Работа с компонентом DateTimePicker2.DateTime
Здравствуйте. Такая картина. У меня компонент DateTimePicker2.DateTime и Edit1. Вожу в Edit1 число и оно должно вычистить и отобразить в ...

26
0 / 0 / 0
Регистрация: 20.12.2016
Сообщений: 136
06.02.2017, 14:46  [ТС]
Студворк — интернет-сервис помощи студентам
ibquery1.Datasource - очищено
ibquery1.Active Active ставлю ошибка: Dinamic Sql error code =-104 token unknown line 1 column 9 from

Добавлено через 12 минут
в datasourse выбираю ibquery1 dbgrid неактивно и все записи пропадают
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,681
Записей в блоге: 21
06.02.2017, 15:51
где -то ошибка в SQL

Добавлено через 14 минут
у меня же запустилось
0
0 / 0 / 0
Регистрация: 20.12.2016
Сообщений: 136
06.02.2017, 16:44  [ТС]
Спасибо. буду разбираться согласно Вашим рекомендациям. О результате сообщу
0
Модератор
 Аватар для D1973
9948 / 6483 / 2461
Регистрация: 21.01.2014
Сообщений: 27,469
Записей в блоге: 3
07.02.2017, 07:51
Цитата Сообщение от krapotkin Посмотреть сообщение
где -то ошибка в SQL
это не в SQL ошибка...
rubasta, Грид у тебя неактивен в design time, верно? И это естественно, т.к. свойство Active компонента IBQuery выставлено в false. Попытка же выставить его в true приводит к ошибке, т.к. свойство SQL компонента IBQuery изначально пусто.
Лично я не вижу смысла делать это свойство активным на этапе разработки, но, если уж так хочется, открой это свойство в инспекторе объектов и напиши там что-то вроде
T-SQL
1
SELECT * FROM <Как там твоя таблица называется>
после этого смело ставь Active - true и увидишь все записи из таблицы на этапе разработки
0
0 / 0 / 0
Регистрация: 20.12.2016
Сообщений: 136
07.02.2017, 23:36  [ТС]
Сейчас рою в сторону отказа от использования IBTable на форме. Пытаюсь ручками все прописывать через IBQuery. Вроде получается, только DBGrid визуально не видно, тяжело поля прописать переименовать и т.д. Рою помаленьку

Добавлено через 11 минут
D1973 буду пробовать как посоветовал.
0
 Аватар для krapotkin
6854 / 4680 / 1465
Регистрация: 14.04.2014
Сообщений: 20,681
Записей в блоге: 21
08.02.2017, 09:49
заполните SQL у Query и сделайте ему Active
и все будет точно так же как у Table
0
0 / 0 / 0
Регистрация: 20.12.2016
Сообщений: 136
12.02.2017, 15:09  [ТС]
Что в этом коде подправить чтобы диапазон выбирала! Определенный день выбирает!

Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm1.Button1Click(Sender: TObject);
begin
IBQuery1.Active:=false;
IBQuery1.SQL.Clear;
IBQuery1.SQL.Add('SELECT * FROM otkaz_vid WHERE datavid  BETWEEN :D1 AND :D2');
IBQuery1.ParamByName('D1').AsDatetime:= DateTimePicker1.Date;
IBQuery1.ParamByName('D2').AsDatetime:= DateTimePicker2.Date;
IBQuery1.Active:=true;
DataSource1.DataSet:=IBQuery1;
end;
Добавлено через 4 часа 2 минуты
Задача решена всем спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.02.2017, 15:09

Несоответствие формата даты System.DateTime и DATETIME в SQL Express Edition
Столкнулся с такой проблемой: В System.DateTime дата пишется в формате дд.мм.гггг чч.мм.сс, а DATETIME в SQL Express Edition хочет получать...

SQLite. Работа с DateTime. Как вытащить из БД и конвертировать в формат DateTime
У меня таблица SQLite Есть колонка INTEGER которая хранит значение типа &quot;2018-06-09 16:10:00&quot; Строка =...

Не могу вставить datetime в datetime путем INSERT INTO SELECT
Добрый день! Думаю мой вопрос ламерский и находится где-то в FAQ, где я его не нашел. Мне нужно продублировать данные с одной...

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

Ошибка: 0 - DateTime::__construct() [datetime.--construct]:
Не могу зайти в профиль компонента JomSocial из-за данной ошибки: 0 - DateTime::__construct() : Failed to parse time string (25) at...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru