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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2011, 17:07   #1
Siluet
Форумчанин
 
Регистрация: 05.12.2008
Сообщений: 143
По умолчанию Сортировка данных в таблице

Здаствуйте. Пишу программу. Нужна помощь. Есть данные в БД с разными датами, необходимо вывести данные с указанным диапозоном дат..
программа прилагается

код писать не пытался т.к. понятия не имею как делать
Вложения
Тип файла: rar programm.rar (330.2 Кб, 16 просмотров)

Последний раз редактировалось Siluet; 14.03.2011 в 17:09.
Siluet вне форума Ответить с цитированием
Старый 14.03.2011, 20:45   #2
atihiy2010
Пользователь
 
Аватар для atihiy2010
 
Регистрация: 22.04.2010
Сообщений: 60
По умолчанию

Надо добавить компонент Query и связать его с таблицой.

а в кнопке написать что то типа:

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.SQL.Clear;

 Query1.SQL.Add('select * from summa where Data_Posledn BETWEEN DateTimePicker1.Date AND DateTimePicker2.Date');
  Query1.Open;
end;
Поковыряйся в коде, должно получится...
atihiy2010 вне форума Ответить с цитированием
Старый 14.03.2011, 22:20   #3
Siluet
Форумчанин
 
Регистрация: 05.12.2008
Сообщений: 143
По умолчанию

Код:
BETWEEN DateTimePicker1.Date AND DateTimePicker2.Date
он на эту строчку ругается

Последний раз редактировалось Siluet; 14.03.2011 в 22:25.
Siluet вне форума Ответить с цитированием
Старый 15.03.2011, 00:26   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вообще-то, это называется не сортировка, а ВЫБОРКА данных.

посмотрите тут, с использованием параметрического запроса:
http://www.programmersforum.ru/showp...83&postcount=3
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.03.2011, 01:17   #5
atihiy2010
Пользователь
 
Аватар для atihiy2010
 
Регистрация: 22.04.2010
Сообщений: 60
По умолчанию

Задача стала и мне интересной. Попробывал я с вашими параметрами, а он ругается Invalid use key:Token:Table

Код:
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * from Table summa ');
Query1.SQL.Add('where Data_posledn between :pDate1 and :PDate2 ');
Query1.ParamByName('pDate1').Value := DateTimePicker1.Date;
Query1.ParamByName('pDate2').Value := DateTimePicker2.Date;
Query1.ExecSQL;
end;
А если забрать слово Table то ругается на Type mismatch in expression.

Последний раз редактировалось atihiy2010; 15.03.2011 в 01:19.
atihiy2010 вне форума Ответить с цитированием
Старый 15.03.2011, 03:29   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

а попробуйте такой код (напрример, на кнопке "Извлечь" ):
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('Select * from summa.db ');
  Query1.SQL.Add('where Data_posledn between :pDate1 and :pDate2 ');
  Query1.ParamByName('pDate1').DataType := ftDateTime;
  Query1.ParamByName('pDate2').DataType := ftDateTime;
  Query1.ParamByName('pDate1').Value := DateTimePicker1.Date;
  Query1.ParamByName('pDate2').Value := DateTimePicker2.Date;
  Query1.Open;

  DataSource1.DataSet := Query1;

  {а эта строчка по сути к делу не относится, просто ширину первого столбца в гриде
   принудительно задаёт - для красоты, тк сказать..}
   DBGrid1.Columns.Items[0].Width := 350;

end;

Последний раз редактировалось Serge_Bliznykov; 15.03.2011 в 03:33.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.03.2011, 09:26   #7
atihiy2010
Пользователь
 
Аватар для atihiy2010
 
Регистрация: 22.04.2010
Сообщений: 60
По умолчанию

Так ошибки нету, но и ничего не происходит. Дык скачай пример кинутый автором и попробуй. Там еще скорее всего связка елементов не та. Там есть Table1,DBGrid,DataSource. И я лично добавлял Query1 и связал его с Datasource1. А Datasource1 связан с Table1.
atihiy2010 вне форума Ответить с цитированием
Старый 15.03.2011, 10:20   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Так ошибки нету, но и ничего не происходит. Дык скачай пример кинутый автором и попробуй.
дык, скачал. Попробовал. Работает. Выложить проект + exe ?!

(неужели Вы думаете, что строчка с изменением ширины 1-й колонки в DBGrid1 появилась просто так? Это в результате работы добавил. чтобы компактнее результаты поиска отображались)!


ДОБАВЛЕНО
возникла одна мысль... А Вы Query1 на форму поместили? А какого типа?
Дело в том, что я воспользовался TQuery
(хотя BDE - это sucks, отстой, зло и must die!!! но раз автор пользуется TTable - то это его выбор!! )

Последний раз редактировалось Serge_Bliznykov; 15.03.2011 в 10:24.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 15.03.2011, 12:04   #9
atihiy2010
Пользователь
 
Аватар для atihiy2010
 
Регистрация: 22.04.2010
Сообщений: 60
По умолчанию

Да действительно, все заработало. Разобрался где ошибался. Видимо связка компонентов была у меня неправильная. Просто надо было сразу переключить DataSet в Query1. А его самого не трогать даже... ВИНОВАТ)))
Чето автор молчит, небось завели мы его в далекие дебри)
atihiy2010 вне форума Ответить с цитированием
Старый 15.03.2011, 13:24   #10
Siluet
Форумчанин
 
Регистрация: 05.12.2008
Сообщений: 143
По умолчанию

никуда не завели) Я на учебе был
киньте пож-ста переделанную прогу..
Siluet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка в сводной таблице ElenaNTro Microsoft Office Excel 7 06.04.2010 19:42
сортировка в сводной таблице mistx Microsoft Office Excel 18 30.03.2009 21:56
Сортировка в таблице... Gektor Паскаль, Turbo Pascal, PascalABC.NET 2 23.09.2007 12:10
Сортировка в таблице Paradox Longedok БД в Delphi 2 14.07.2007 19:29