Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.10.2012, 10:39
Andrej-zhe Andrej-zhe вне форума
Прохожий
 
Регистрация: 28.08.2012
Адрес: Курск
Сообщения: 49
Репутация: 10
По умолчанию Выборка данных из dbf

Доброго времени суток. Если кто то по данной проблеме уже интересовался просьба дать ссылочку на тему.
У меня есть база данных .dbf из которой необходимо выбирать данные за определенные месяца. Пользователь должен будет выбрать нужный период через компаненту DateTimePicker1 и DateTimePicker2. Подскажите код реализации или где можно посмотреть.
Ответить с цитированием
  #2  
Старый 11.10.2012, 11:17
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Andrej-zhe
Доброго времени суток. Если кто то по данной проблеме уже интересовался просьба дать ссылочку на тему.
У меня есть база данных .dbf из которой необходимо выбирать данные за определенные месяца. Пользователь должен будет выбрать нужный период через компаненту DateTimePicker1 и DateTimePicker2. Подскажите код реализации или где можно посмотреть.
Выборку можно сделать SQL-запросом или фильтром.
Пиши, что конкретно не получается, так как в твоём вопросе я проблемы не увидел.
Ответить с цитированием
  #3  
Старый 11.10.2012, 11:17
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Тебе код запроса нужен?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #4  
Старый 11.10.2012, 11:23
Andrej-zhe Andrej-zhe вне форума
Прохожий
 
Регистрация: 28.08.2012
Адрес: Курск
Сообщения: 49
Репутация: 10
По умолчанию

Код:
tblSbor.Close;
Query1.Close;
Query1.DatabaseName:=ExtractFilePath(Application.ExeName);
Query1.SQL.Text:='SELECT * FROM sbor.dbf WHERE dpo BEETWEN ((...) AND (...))';
tblSbor.Open;
Query1.Open;

как запрос надо написать?
Ну и вобще правильно или нет?

Последний раз редактировалось Andrej-zhe, 11.10.2012 в 11:49.
Ответить с цитированием
  #5  
Старый 11.10.2012, 12:07
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Andrej-zhe
Код:
tblSbor.Close;
Query1.Close;
Query1.DatabaseName:=ExtractFilePath(Application.ExeName);
Query1.SQL.Text:='SELECT * FROM sbor.dbf WHERE dpo BEETWEN ((...) AND (...))';
tblSbor.Open;
Query1.Open;

как запрос надо написать?
Ну и вобще правильно или нет?
Пробуй так:
Код:
  Query1.SQL.Text := 'SELECT * FROM sbor.dbf WHERE dpo >= :date1 and dpo < :date2';
  Query1.ParamByName('date1').AsDate := Int(DateTimePicker1.Date);
  Query1.ParamByName('date2').AsDate := Int(DateTimePicker2.Date)+1;
Ответить с цитированием
  #6  
Старый 11.10.2012, 15:58
Andrej-zhe Andrej-zhe вне форума
Прохожий
 
Регистрация: 28.08.2012
Адрес: Курск
Сообщения: 49
Репутация: 10
По умолчанию

Не работает, а можно целиком процедуру, а то я в базах данных 0.
Да и еще вот что я не указал а может это важно. У меня файл sbor.dbf формируется из 4-х других файлов может проблема в этом.

Последний раз редактировалось Andrej-zhe, 11.10.2012 в 16:06.
Ответить с цитированием
  #7  
Старый 11.10.2012, 16:44
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Andrej-zhe
Не работает, а можно целиком процедуру, а то я в базах данных 0.
У меня так работает:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Query1.Close;
  Query1.SQL.Text := 'SELECT * FROM sbor.dbf WHERE dpo >= :date1 AND dpo < :date2';
  Query1.ParamByName('date1').AsDate := Int(DateTimePicker1.Date);
  Query1.ParamByName('date2').AsDate := Int(DateTimePicker2.Date)+1;
  Query1.Open;
end;
Цитата:
Сообщение от Andrej-zhe
Да и еще вот что я не указал а может это важно. У меня файл sbor.dbf формируется из 4-х других файлов может проблема в этом.
Не вижу в этом проблемы.
Ответить с цитированием
  #8  
Старый 11.10.2012, 16:53
Andrej-zhe Andrej-zhe вне форума
Прохожий
 
Регистрация: 28.08.2012
Адрес: Курск
Сообщения: 49
Репутация: 10
По умолчанию

Вот так ругается
---------------------------
Project1
---------------------------
Incompatible record structures.

File or directory does not exist.

File: C:\Users\...\_QSQL000.DBF

Table does not exist.
---------------------------
ОК
---------------------------

почему он обращается не к файлу sbor.dbf а к какому то временному получается.

Последний раз редактировалось Andrej-zhe, 11.10.2012 в 16:56.
Ответить с цитированием
  #9  
Старый 11.10.2012, 17:05
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Andrej-zhe
Вот так ругается
---------------------------
Project1
---------------------------
Incompatible record structures.

File or directory does not exist.

File: C:\Users\...\_QSQL000.DBF

Table does not exist.
---------------------------
ОК
---------------------------
Файл sbor.dbf на диске присутствует?
Путь к этому файлу прописан в Query1.DatabaseName?
Поле DPO в этой таблице существует?
Тип этого поля действительно Date?

Цитата:
Сообщение от Andrej-zhe
почему он обращается не к файлу sbor.dbf а к какому то временному получается.
Как формируется файл sbor.dbf из тех 4-х файлов?
Ответить с цитированием
  #10  
Старый 11.10.2012, 17:10
Andrej-zhe Andrej-zhe вне форума
Прохожий
 
Регистрация: 28.08.2012
Адрес: Курск
Сообщения: 49
Репутация: 10
По умолчанию

файл на диске присутствует
путь к файлу прописат в Query1.DatabaseName
поле существует
тип поля integer - поменять нет возможности иначе придется менять и в др файлах из которых формируется сбор

а вот таким запросом формируется файл
Код:
Query1.SQL.Text:='SELECT o.dpo, m.nist, m.fio,  m.date_wz, m.dp, m.dw, d.name, d.kodn, m.otd FROM duh.dbf d, oper.dbf o, oper_ozo.dbf z, mklh.dbf m WHERE (d.type = o.type and d.subtype = o.subtype and d.kod = o.kod) AND'+
'(d.type = z.type and d.subtype = z.subtype and d.kod = z.kod) AND (o.n =  m.nk and o.otd = m.otd)';

Последний раз редактировалось Andrej-zhe, 11.10.2012 в 17:25.
Ответить с цитированием
  #11  
Старый 11.10.2012, 17:27
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Andrej-zhe
файл на диске присутствует

поле существует
тип поля integer - поменять нет возможности иначе придется менять и в др файлах из которых формируется сбор
Если поле integer, то с чего вдруг в нём хранится дата?
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
Andrej-zhe (12.10.2012)
  #12  
Старый 11.10.2012, 17:30
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Andrej-zhe
а вот таким запросом формируется файл
Код:
Query1.SQL.Text:='SELECT o.dpo, m.nist, m.fio,  m.date_wz, m.dp, m.dw, d.name, d.kodn, m.otd FROM duh.dbf d, oper.dbf o, oper_ozo.dbf z, mklh.dbf m WHERE (d.type = o.type and d.subtype = o.subtype and d.kod = o.kod) AND'+
'(d.type = z.type and d.subtype = z.subtype and d.kod = z.kod) AND (o.n =  m.nk and o.otd = m.otd)';
Это формируется не файл, а выборка. А как эта выборка сохраняется на диск в файл sbor.dbf?
Ответить с цитированием
  #13  
Старый 11.10.2012, 17:31
Andrej-zhe Andrej-zhe вне форума
Прохожий
 
Регистрация: 28.08.2012
Адрес: Курск
Сообщения: 49
Репутация: 10
По умолчанию

ну вот хранится незнаю как и почему.
тогда вот так формируется наверное
Код:
Query1.Open;
if Query1.RecordCount>0
  then
  begin
  tblSbor.TableName:='sbor.dbf';
  tblSbor.Open;
  while not Query1.Eof do
    begin
    tblSbor.Insert;
    tblSbor.FieldByName('nist').Value:=Query1.FieldByName('nist').Value;
    tblSbor.FieldByName('kodn').Value:=Query1.FieldByName('kodn').Value;
    tblSbor.FieldByName('name').Value:=Query1.FieldByName('name').Value;
    tblSbor.FieldByName('dpo').Value:=Query1.FieldByName('dpo').Value;
    tblSbor.FieldByName('otd').Value:=Query1.FieldByName('otd').Value;
    tblSbor.FieldByName('fio').Value:=Query1.FieldByName('fio').Value;
    tblSbor.FieldByName('date_wz').Value:=Query1.FieldByName('date_wz').Value;
    tblSbor.FieldByName('dp').Value:=Query1.FieldByName('dp').Value;
    tblSbor.FieldByName('dw').Value:=Query1.FieldByName('dw').Value;
    tblSbor.Post;
    Query1.Next;
    end;
  end
  else ShowMessage('Ни одной записи не найдено');

Последний раз редактировалось Andrej-zhe, 11.10.2012 в 17:34.
Ответить с цитированием
  #14  
Старый 12.10.2012, 15:24
Andrej-zhe Andrej-zhe вне форума
Прохожий
 
Регистрация: 28.08.2012
Адрес: Курск
Сообщения: 49
Репутация: 10
По умолчанию

да все спс выборка делается, подскажите а как сделать выгрузку в excel полного файла и тех данных которые отображаются после выборки. Вобщем как отправить в excel данные которые в данный момент отображены в программе?
Ответить с цитированием
  #15  
Старый 12.10.2012, 15:37
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Andrej-zhe
да все спс выборка делается, подскажите а как сделать выгрузку в excel полного файла и тех данных которые отображаются после выборки. Вобщем как отправить в excel данные которые в данный момент отображены в программе?
Попробуй >>этот<< пример.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:01.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter