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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.05.2009, 15:44
Аватар для MaryG
MaryG MaryG вне форума
Прохожий
 
Регистрация: 17.01.2007
Адрес: Далеко, за пределами России
Сообщения: 16
Репутация: 10
По умолчанию Найти и переместиться в нужную строку dbf-файла

Если, например, .dbf-ка содержит данные с 2005 года, а нужно начинать выборку с 2009-го, как осуществить синтаксически правильно поиск в .dbf средствами Delphi?
Способ:
Код:
      try
        Read_Dbf(Dbf);
        DecodeDate(Get_Dbf_Date(Dbf, 3), Year, Month, Day); //поле даты в dbf-е
 // fltDateFrom - поле даты введенное в форме приложения с моей базы
        if fltDateFrom.Date <= Get_Dbf_Date(Dbf, 3) then
не помогает, ибо при чтении файла данных, до нужной даты нужно перелистать все данные, а мне надо начинать уже из середины.
Как это осуществить, граждане?
__________________
Пусть печатают работяги, программеры - люди ленивые! А я предлагаю перемирие, процедурой выпивания и закусывания
Ответить с цитированием
  #2  
Старый 14.05.2009, 18:24
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

SQL запрос
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 14.05.2009, 18:28
Аватар для MaryG
MaryG MaryG вне форума
Прохожий
 
Регистрация: 17.01.2007
Адрес: Далеко, за пределами России
Сообщения: 16
Репутация: 10
По умолчанию Всё нашла решение!!!

Решила проблему, организовав всё в цикл, где изменяющаяся в увеличительную сторону переменная - это количество строк в dbf-файле:
Код:
For i := 0 to Dbf.head.lf do begin
    pb.Position := i;
      try
        Read_Dbf(Dbf);
        DecodeDate(Get_Dbf_Date(Dbf, 3), Year, Month, Day);
        if fltDateFrom.Date <= Get_Dbf_Date(Dbf, 3) then begin
// исполняю сохранение и т.д. с запросами и всё такое...
// транзакция сохранения 
       ImportTransaction.Commit;
//закрываем try
      except
      end;
//закрытие файла базы данных dbf
     Close_Dbf(Dbf);
__________________
Пусть печатают работяги, программеры - люди ленивые! А я предлагаю перемирие, процедурой выпивания и закусывания
Ответить с цитированием
  #4  
Старый 14.05.2009, 18:35
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

А что вы за библиотеку доступа к DBF используете? В ней есть возможность выпольнить SQL-запрос?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #5  
Старый 18.05.2009, 13:10
Аватар для MaryG
MaryG MaryG вне форума
Прохожий
 
Регистрация: 17.01.2007
Адрес: Далеко, за пределами России
Сообщения: 16
Репутация: 10
По умолчанию

Использую Us_Dbf. Среда разработки Delphi 5!
Доступ до данных dbf, осуществляется стандартной процедурой Get_Dbf(Dbf, номер поля). В зависимости от типа данных:
Get_Dbf_Real(Dbf, номер поля)
Get_Dbf_Date(Dbf, номер поля)

Достучаться к dbf возможно так:
Open_Dbf(Dbf, OpenDialog.FileName);
чтение :
Read_Dbf(Dbf);
закрытие:
Close_Dbf(Dbf);
Всё просто, как для блондинки!
__________________
Пусть печатают работяги, программеры - люди ленивые! А я предлагаю перемирие, процедурой выпивания и закусывания

Последний раз редактировалось MaryG, 18.05.2009 в 13:15.
Ответить с цитированием
  #6  
Старый 18.05.2009, 15:18
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Вообщето это не самый удобный способ получения данных. А у большинства форумчан этой библиотеки просто нет, и соответственно дать нормальный совет неполучится.
Примеры, что вы привели касаются получения данных из текущей записи, а вот что касается выборок, тут вам флаг в руки. Я в инете несмог найти нормального описания этой библиотеки.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #7  
Старый 20.05.2009, 16:31
Аватар для MaryG
MaryG MaryG вне форума
Прохожий
 
Регистрация: 17.01.2007
Адрес: Далеко, за пределами России
Сообщения: 16
Репутация: 10
По умолчанию

Us_Dbf.zip
Пожалуйста, можете изучить и описание и в действии... я не жадная
__________________
Пусть печатают работяги, программеры - люди ленивые! А я предлагаю перемирие, процедурой выпивания и закусывания
Ответить с цитированием
  #8  
Старый 20.05.2009, 18:06
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Мдааа... Эта библиотека в лучшем случае, для школьного курса информатики. Работы с индексами похоже вообще непланировалось, с выборками тоже засада. Я уже неговорю об отсутствии поддержки визуальных компонентов.
Вывод: стандартный метод доступа к DBF через ADO или BDE на порядок мощнее и удобнее.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 20.05.2009 в 18:09.
Ответить с цитированием
  #9  
Старый 21.05.2009, 16:54
Аватар для MaryG
MaryG MaryG вне форума
Прохожий
 
Регистрация: 17.01.2007
Адрес: Далеко, за пределами России
Сообщения: 16
Репутация: 10
По умолчанию

Не юзаю ))) напрямик на базе FireBird
__________________
Пусть печатают работяги, программеры - люди ленивые! А я предлагаю перемирие, процедурой выпивания и закусывания
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter