|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Найти и переместиться в нужную строку 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
|
||||
|
||||
SQL запрос
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#3
|
||||
|
||||
Всё нашла решение!!!
Решила проблему, организовав всё в цикл, где изменяющаяся в увеличительную сторону переменная - это количество строк в 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
|
||||
|
||||
А что вы за библиотеку доступа к DBF используете? В ней есть возможность выпольнить SQL-запрос?
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
||||
|
||||
Использую 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
|
||||
|
||||
Вообщето это не самый удобный способ получения данных. А у большинства форумчан этой библиотеки просто нет, и соответственно дать нормальный совет неполучится.
Примеры, что вы привели касаются получения данных из текущей записи, а вот что касается выборок, тут вам флаг в руки. Я в инете несмог найти нормального описания этой библиотеки. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#7
|
||||
|
||||
Us_Dbf.zip
Пожалуйста, можете изучить и описание и в действии... я не жадная Пусть печатают работяги, программеры - люди ленивые! А я предлагаю перемирие, процедурой выпивания и закусывания |
#8
|
||||
|
||||
Мдааа... Эта библиотека в лучшем случае, для школьного курса информатики. Работы с индексами похоже вообще непланировалось, с выборками тоже засада. Я уже неговорю об отсутствии поддержки визуальных компонентов.
Вывод: стандартный метод доступа к DBF через ADO или BDE на порядок мощнее и удобнее. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 20.05.2009 в 18:09. |
#9
|
||||
|
||||
Не юзаю ))) напрямик на базе FireBird
Пусть печатают работяги, программеры - люди ленивые! А я предлагаю перемирие, процедурой выпивания и закусывания |