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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.02.2014, 14:03   #11
Scorpuha
Форумчанин
 
Регистрация: 10.10.2013
Сообщений: 177
По умолчанию

не хочется плодить темы, спрошу тут:
вот запрос
Код:
DataModule2.ADOQuery1.SQL.Clear;

      DataModule2.ADOQuery1.SQL.Text := 'select * from Attestat where Data_pereatestat  Between Form7.DateTimePicker1.Date and Form7.DateTimePicker1.Date'; 

   DataModule2.ADOQuery1.ExecSQL;
при выполнении выдает ошибку Form7.DateTimePicker1.Date не имеет значения по умолчанию. Подскажите в чем засада?
Scorpuha вне форума Ответить с цитированием
Старый 13.02.2014, 14:05   #12
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А вы запрос
Код:
select * from Attestat where Data_pereatestat  Between Form7.DateTimePicker1.Date and Form7.DateTimePicker1.Date
в Access выполните и глаза мигом раскроются
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.02.2014, 14:11   #13
Scorpuha
Форумчанин
 
Регистрация: 10.10.2013
Сообщений: 177
По умолчанию

просит ввести значение для Form7.DateTimePicker1.Date. ввожу и все отрабатывает
Scorpuha вне форума Ответить с цитированием
Старый 13.02.2014, 14:22   #14
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

В Accese заменили. Хорошо. А в программе кто будет вместо этой чепухи нормальные значения подставлять?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.02.2014, 14:55   #15
Scorpuha
Форумчанин
 
Регистрация: 10.10.2013
Сообщений: 177
По умолчанию

что не так я делаю?
Scorpuha вне форума Ответить с цитированием
Старый 13.02.2014, 15:12   #16
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Scorpuha Посмотреть сообщение
не хочется плодить темы, спрошу тут:
вот запрос
Код:
DataModule2.ADOQuery1.SQL.Clear;

      DataModule2.ADOQuery1.SQL.Text := 'select * from Attestat where Data_pereatestat  Between Form7.DateTimePicker1.Date and Form7.DateTimePicker1.Date'; 

   DataModule2.ADOQuery1.ExecSQL;
при выполнении выдает ошибку Form7.DateTimePicker1.Date не имеет значения по умолчанию. Подскажите в чем засада?
1. Почитайте пожалуйста SQL по Between А у тебя только DateTimePicker1 и нету второе DateTimePicker как будит работать Between ?
Код:
 // 1Ошибка у тебя здесь
where Data_pereatestat  Between Form7.DateTimePicker1.Date and Form7.DateTimePicker1.Date';
2. Что такой DataModule2.ADOQuery1.ExecSQL; Вы не сохраняйте в БД ! Вы фильтруйте уже существующие данных и надо открыть после фильтр . вот так
Код:
DataModule2.ADOQuery1.Open;
Если вы хотите выбрать период . На пример C: 12.01.2014 По: 25.01.2014 Тогда это должен работать так . Добавляйте DateTimePicker2 и выбираем диапазон даты
Код:
// Uses ---> StrUtils

DataModule2.ADOQuery1.Active := False;
 DataModule2.ADOQuery1.SQL.Clear;
  DataModule2.ADOQuery1.SQL.Text:='select * from Attestat where Data_pereatestat between #'+
   AnsiReplaceStr(FormatDateTime('MM/dd/yyyy', Form7.DateTimePicker1.Date),'.','/')
    +'# and #'+AnsiReplaceStr(FormatDateTime('MM/dd/yyyy', Form7.DateTimePicker2),'.','/')+'#';
    DataModule2.ADOQuery1.Active:=True;
  if DataModule2.ADOQuery1.FieldByName('Data_pereatestat').AsString = '' then
Application.MessageBox('Данных на это период не найдено','Ошибка ввода данных', MB_ICONERROR);

Последний раз редактировалось xxbesoxx; 13.02.2014 в 15:25.
xxbesoxx вне форума Ответить с цитированием
Старый 13.02.2014, 15:30   #17
Scorpuha
Форумчанин
 
Регистрация: 10.10.2013
Сообщений: 177
По умолчанию

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
1. Почитайте пожалуйста SQL по Between А у тебя только DateTimePicker1 и нету второе DateTimePicker как будит работать Between ?
Код:
 // 1Ошибка у тебя здесь
where Data_pereatestat  Between Form7.DateTimePicker1.Date and Form7.DateTimePicker1.Date';
да действительно опечатался, заменил на Form7.DateTimePicker2.Date и все равно такая же ошибка

Цитата:
Сообщение от xxbesoxx Посмотреть сообщение
Код:
// Uses ---> StrUtils

DataModule2.ADOQuery1.Active := False;
 DataModule2.ADOQuery1.SQL.Clear;
  DataModule2.ADOQuery1.SQL.Text:='select * from Attestat where Data_pereatestat between #'+
   AnsiReplaceStr(FormatDateTime('MM/dd/yyyy', Form7.DateTimePicker1.Date),'.','/')
    +'# and #'+AnsiReplaceStr(FormatDateTime('MM/dd/yyyy', Form7.DateTimePicker2),'.','/')+'#';
    DataModule2.ADOQuery1.Active:=True;
  if DataModule2.ADOQuery1.FieldByName('Data_pereatestat').AsString = '' then
Application.MessageBox('Данных на это период не найдено','Ошибка ввода данных', MB_ICONERROR);
ваш код работает, наберусь наглости, как этот код применить к DbGrid, что в в нем оторбражались данные по фильтру из запроса

Последний раз редактировалось Scorpuha; 13.02.2014 в 15:33.
Scorpuha вне форума Ответить с цитированием
Старый 13.02.2014, 15:48   #18
Scorpuha
Форумчанин
 
Регистрация: 10.10.2013
Сообщений: 177
По умолчанию

пока сделал другим способом и только на текущую дату
Код:
       datamodule2.Attestat.Filtered:=false;
      datamodule2.Attestat.Filter := '[Data_pereatestat]='+DateToSTr(Now);
       datamodule2.Attestat.Filtered:=true;
Scorpuha вне форума Ответить с цитированием
Старый 13.02.2014, 15:50   #19
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от Scorpuha Посмотреть сообщение
да действительно опечатался, заменил на Form7.DateTimePicker2.Date и все равно такая же ошибка



ваш код работает, наберусь наглости, как этот код применить к DbGrid, что в в нем оторбражались данные по фильтру из запроса
Друг DbGrid Это просто для отображения данных . У DbGrid есть свойства DataSource и подключайте ваши DataSource1
xxbesoxx вне форума Ответить с цитированием
Старый 13.02.2014, 15:55   #20
Scorpuha
Форумчанин
 
Регистрация: 10.10.2013
Сообщений: 177
По умолчанию

я понимаю что он только отображает данные, я просто новичок в программировании и не знаю как откорректировать ваш запрос под мои хотелки.
Scorpuha вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
новая запись в Grid через DBEdit Ivan174 БД в Delphi 3 30.04.2013 12:36
Необходимо сравнить запись в DBEdit с полем в таблице БД Surzhik БД в Delphi 5 29.04.2010 11:30
запись из DBEdit в таблицу MySQL KaimNotark БД в Delphi 7 22.01.2010 19:36
ввод системной даты в DBEdit ГОСЕАН Помощь студентам 3 30.07.2009 12:59
ввод системной даты в DBEdit ГОСЕАН БД в Delphi 5 30.07.2009 08:36