Как скачать программу для dbf файла. Чем открыть DBF? Загрузка из DBF при помощи ADO

Как скачать программу для dbf файла. Чем открыть DBF? Загрузка из DBF при помощи ADO

10.06.2023

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

Рассмотрим софт поддерживающий просмотр данного формата.

Способ 1: DBF Commander

DBF Commander — многофункциональное приложение для обработки DBF файлов различных кодировок, позволяет производить базовые манипуляции с документами. Распространяется платно, но имеет пробный период.

Для открытия:


Способ 2: DBF Viewer Plus

DBF Viewer Plus – бесплатный инструмент для просмотра и редактирования DBF, простой и удобный интерфейс представлен на английском языке. Имеет функцию создания собственных таблиц, не требует инсталляции.

Для просмотра:


Способ 3: DBF Viewer 2000

DBF Viewer 2000 — программа с довольно упрощённым интерфейсом, позволяет работать с файлами объёмом более 2 ГБ. Имеет русский язык и пробный период использования.

Чтобы открыть:


Способ 4: CDBF

CDBF — мощный способ редактирования и просмотра баз данных, также позволяет создавать отчеты. Расширить функционал можно, используя дополнительные плагины. Присутствует русский язык, распространяется платно, однако имеет триал версию.

Для просмотра:


Способ 5: Microsoft Excel

— один из компонентов пакета программ Microsoft Office, хорошо известного большинству пользователей.

Чтобы открыть:


Заключение

Мы рассмотрели основные способы открытия DBF документов. Из подборки выделяется лишь DBF Viewer Plus — полностью бесплатное ПО, в отличие от остальных, которые распространяются на платной основе и имеют только пробный период.

DBF – широко распространенный формат хранения данных, появившийся в 80-х годах прошлого века. Впервые формат применялся в семействе СУБД dBase. В связи с популярностью и широким распространением dBase, было создано множество dBase-подобных программных продуктов, получивших собирательное название xBase. Несмотря на значительный возраст формата, он до сих пор достаточно широко используется. В данной статье рассматриваются способы работы с DBF из «1С:Предприятие».

В «1С:Предприятие» для работы с файлами формата DBF(версия dBase III) применяется специальный программный объект – xBase. Работа с этим объектом обычно не вызывает трудностей.

Внимание!

При работе с файлами DBF следует помнить, что имя файла должно удовлетворять ограничению 8.3.

Внимание!

Объект xBase доступен как на стороне клиента, так и на стороне сервера. Следует продумывать клиент-серверное взаимодействие при решении каждой конкретной задачи.

Чтение файла DBF

Чтение данных из файла DBF производится за несколько последовательных этапов:

  1. Создание объекта XBase;
  2. Открытие файла;
  3. Последовательный перебор всех строк файла и считывание значений полей;
  4. Закрытие файла.
ДБФ = Новый XBase; ДБФ. ОткрытьФайл("D:\MyFile.dbf" ); // Этап 2. Открытие файла Пока Истина Цикл // Этап 3. Перебор строк файла Сообщить(ДБФ. NAME); Если НЕ ДБФ. Следующая() Тогда // Позиционирование на следующей записи Прервать; КонецЕсли; КонецЦикла; ДБФ. ЗакрытьФайл(); // Этап 4. Закрытие файла

Можно использовать несколько измененный алгоритм перебора строк файла:

Пока НЕ ДБФ . ВКонце () Цикл Сообщить(ДБФ. NAME); ДБФ. Следующая (); КонецЦикла;

Выгрузка в файл DBF

Этапы выгрузки в файл DBF:

  1. Создание объекта XBase;
  2. Указание кодировки (если не указать, то будет использоваться кодировка ANSI);
  3. Описание полей;
  4. Создание файла;
  5. Цикл с добавлением и заполнением строк;
  6. Закрытие файла.

Рассмотрим этот процесс на примере:

ДБФ = Новый XBase; // Этап 1. Создание объекта XBase ДБФ. Кодировка = КодировкаXBase. OEM; // Этап 2. Указание кодировки ДБФ. Поля. Добавить("CODE" , "S" , 9 ); // Этап 3. Описание имени и типа поля ДБФ. Поля. Добавить("NAME" , "S" , 40 ); ДБФ. СоздатьФайл("D:\MyFile.dbf" ); // Этап 4. Создание файла Выборка = Справочники. Номенклатура. Выбрать(); Пока Выборка. Следующий() Цикл ДБФ. Добавить(); // Добавление строки ДБФ. CODE = Выборка. Код; // Заполнение значения поля ДБФ. NAME = Выборка. Наименование; ДБФ. Записать(); // Запись строки КонецЦикла; ДБФ. ЗакрытьФайл (); // Этап 6. Закрытие файла

При указании кодировки используется тип КодировкаXBase , который может принимать два значения:

  • ANSI – формат Windows;
  • OEM – формат DOS.

Добавление нового поля при описании структуры имеет синтаксис

Добавить(< Имя>, < Тип>, < Длина>, < Точность>)

Доступны следующие типы:

  • «N» – число;
  • «S» – строка;
  • «D» – дата;
  • «L» – булево;
  • «F» – аналогично «N» – число.

Длина поля является обязательным для типов полей «N», «F» и «S».

Работа с индексами

Совместно с файлом DBF может использоваться индексный файл, в котором может содержаться информация об одном или более индексе. Наличие индексов делает возможным использование поиска, а не только последовательного перебора всех строк файла.

При создании индексного файла следует задать:

  • Перечень индексов;
  • Путь сохранения индексного файла (на этапе 4 выгрузки).

Пример создания индексного файла:

ДБФ. Индексы. Добавить("INDCODE" , "CODE" ); ДБФ. СоздатьФайл ("D:\MyFile.dbf" , "D:\index.cdx" );

Процедура добавления нового индекса имеет синтаксис:

Добавить(< Имя>, < Выражение>, <Уникальность>, < Убывание>, < Фильтр >)

Для использования индексов при чтении из файла DBF следует:

  • Указать путь к индексному файлу (на этапе 2 загрузки);
  • Задать текущий индекс.

Пример открытия файла DBF с использованием индексного файла:

ДБФ. ОткрытьФайл("D:\MyFile.dbf" , "D:\index.cdx" ); ДБФ. ТекущийИндекс = ДБФ. Индексы. INDCODE ;

Внимание!

При открытии файла DBF позиционирование происходит на первой записи в файле. Первая запись в файле не соответствует первой записи в индексе. В связи с этим при использовании индексов перед тем, как последовательно обходить строки, необходимо спозиционироваться на первой строке индекса. Это можно сделать методом Первая () , например:

ДБФ . Первая ();

Для поиска может использоваться одна из двух функций:

  • Найти(< Ключ>, < Режим >) ;
  • НайтиПоКлючу(< Режим >) .

В результате работы обоих функций возвращается значение с типом булево (найдена запись с указанными условиями или нет). В случае успешного поиска текущий указатель устанавливается на найденной строке. В качестве режима поиска может использоваться одно из значений:

  • «>=»;
  • «>»;
  • «<=»;
  • «<«.

Рассмотрим поиск в файле DBF на примерах:

ДБФ = Новый XBase; ДБФ. ОткрытьФайл("D:\MyFile.dbf" , "D:\index.cdx" ); // При открытии файла DBF дополнительно указывается индексный файл ДБФ. ТекущийИндекс = ДБФ. Индексы. INDCODE; // Установка текущего индекса // поиск методом Найти: Если ДБФ. Найти("000000003" , "=" ) Тогда Сообщить( + ДБФ. NAME); Иначе Сообщить("Не найдено" ); КонецЕсли; // поиск методом НайтиПоКлючу: ДБФ. Ключ. CODE = "000000002" ; Если ДБФ. НайтиПоКлючу("=" ) Тогда Сообщить("Найдено. Наименование элемента: " + ДБФ. NAME); Иначе Сообщить("Не найдено" ); КонецЕсли; ДБФ. ЗакрытьФайл ();

Удаление записей в файле DBF

Удаление записи производится методом Удалить () :

ДБФ. Удалить ();

Но при использовании этого метода запись не удаляется из файла безвозвратно, ей присваивается пометка удаления. При переборе строк помеченные на удаление записи пропускаются. Если необходимо обойти весь файл, включая помеченные на удаление записи, необходимо присвоить значение Истина свойству ОтображатьУдаленные объекта xBase. Узнать помечена запись на удаление или нет можно с помощью функции ЗаписьУдалена () . Для снятия пометки удаления используется метод Восстановить () .

ДБФ. ОтображатьУдаленные = Истина; Пока НЕ ДБФ. ВКонце() Цикл Если ДБФ. ЗаписьУдалена() Тогда ДБФ. Восстановить(); КонецЕсли; ДБФ. Следующая (); КонецЦикла;

Для непосредственного удаления помеченных записей используется метод Сжать () :

ДБФ. Сжать ();

Если необходимо удалить все записи в файле непосредственно, то можно использовать метод ОчиститьФайл () :

ДБФ. ОчиститьФайл ();

Загрузка из DBF при помощи ADO

Для работы с файлами DBF может использоваться технология ADO. Драйверы ADO входят в состав операционной системы Windows и дополнительно их устанавливать не надо.

Рассмотрим пример кода для чтения из файла DBF по технологии ADO:

АДО = Новый COMОбъект("ADODB.Connection" ); // Создание COM-объекта АДО. Open("Provider=Microsoft.Jet.OLEDB.4.0; |Data Source=""D:\""; |Extended Properties=DBASE III" ); БД = АДО. Execute("Select * from MyFile" ); // запрос с получением всех записей из файла MyFile.DBF Пока БД. EOF= 0 Цикл //Цикл по записям файла DBF Сообщить(БД. Fields("Name" ). value); // Пример обращения к значению поля БД. MoveNext(); //Переходим к следующей записи КонецЦикла; АДО. Close();

В приведенном примере используется строка подключения «Provider=Microsoft.Jet.OLEDB.4.0;Data Source= «D:\»;Extended Properties=DBASE III». В этой строке:

  • Provider – это используемый драйвер;
  • Data Source – путь, где находится файл DBF. Путь указывается с точностью до каталога. Имя файла используется в качестве имени таблицы в запросах;
  • Extended Properties – в случае обращения к файлам DBF является обязательным параметром. Можно указать формат файла

Внимание!

При чтении указанным способом кодировка по-умолчанию – OEM. Для того, чтобы изменить кодировку на ANSI необходимо в реестре Windows присвоить параметру HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\xBase\DataCodePage значение «ANSI».

Таблицы формата dbf известны еще с далекого 1980 года. С тех пор dBase формат эволюционировал, развивался, появились dBase II, dBase III и dBase IV, к настоящему времени было разработано много популярных программ, работающих с базами данных, в которых используются таблицы dbf формата и по сей день. Формат dbf таблиц довольно старый, но его продолжают использовать для создания как крупных и амбициозных, так и для небольших проектов, таблицы dbf используются в образовательных целях, для знакомства и изучения базовых знаний и представления организации баз данных. DBFNavigator это бесплатная программа для просмотра и редактирования таблиц dbf формата, простая и удобная утилита.

С программой DBFNavigator Вы можете открывать и просматривать таблицы dbf, редактировать таблицы - изменять, добавлять и удалять записи. Используя DBFNavigator Вы сможете изменять структуру таблиц, добавлять, изменять и удалять поля таблицы, сжимать dbf таблицы для очистки их от удаленных записей (сбор мусора), менять кодировку таблиц Windows->DOS и наоборот. В программе можно сортировать записи таблицы, копировать записи и отдельные поля, выводить строки таблицы на печать, выполнять поиск и применять к просмотру записей таблиц фильтры, изменять параметры открытия файлов dbf.

Скриншоты программы DBFNavigator



Формат DBF (Data Base File) был введен в обиход компанией Ashton-Tate в 1980 году, в первой СУБД семейства систем управления базами данных dBase — dBase II.

Открытый формат данных и популярность изначальной системы привели к появлению множества различных аналогов СУБД, таких как FoxPro, dbFast, XBase++ и других. При этом разработчики вносили различные изменения в базовый формат связанные с функциональностью (добавление новых типов данных, изменение структуры заголовка или структуры полей таблицы и т.д.).

Отсутствие какой-либо жесткой стандартизации и подобные изменения повлекли за собой отсутствие гарантий что разрабатываемая программа сможет корректно выполнить операцию чтения/записи с любым dbf-файлом. Тем не менее, сохраняется базовая совместимость между различными форматами DBF.

DBF-файл состоит из 2 разделов: заголовок и непосредственно сама таблица данных. Заголовок содержит общую информацию о dbf-файле: структуру файла, количество записей, используемая версия dbf, объем памяти занимаемый заголовком и таблицей и т.п. Состав структуры заголовка отличается в различных версиях формата.

Конец файла помечается маркером EoF (End Of File).

Для ускорения работы с dbf-файлами существует возможность использования индексных файлов, в котором перечислены значения ключевого поля (или совокупность ключевых полей, если файл мульти индексный) и идентификаторы соответствующих записей.

В 1С работа с dbf-файлами может осуществляться несколькими способами:

  • Объект XBase;
  • Интерфейс программирования

Объект XBase

Объект XBase обеспечивает возможность работы с базами данных формата DBF с помощью встроенного языка 1С:Предприятие.

Данный объект обеспечивает доступ к коллекции полей и индексов dbf-таблицы, позволяет выполнять любые действия над данными (создание новых и чтение существующих таблиц, добавление, корректировка и удаление записей).

Для каждого файла dbf, с которым предстоит работать, требуется создавать отдельный объект XBase.

Интерфейс программирования ADO

ADO (ActiveX Data Objects) – интерфейс программирования для доступа к данным, позволяющий получить данные из различных источников.

Основные объекты ADO позволяющие выполнять манипуляции с dbf-файлом:

С полным перечнем объектов и их свойств можно ознакомиться в MSDN.

Connection – объект, непосредственно обеспечивающий доступ к dbf-файлу

Open(ConnectionString) Открывает сеанс работы с источником данных. В качестве параметра передается строка соединения вида “ Provider=Microsoft.Jet.OLEDB.4.0;Data Source=;
Extended Properties=dBASE IV;User ID=;Password=;”
В параметр DataSource указывается папка, в которой находятся файлы dbf.
Close() Закрывает соединение с источником данных
Provider Содержит имя используемого провайдера. При выполнении метода Open автоматически заполняется значением Provider из строки подключения
ConnetionString Содержит строку подключения. При выполнении метода Open автоматически заполняется параметром функции ConnectionString
ConnetionTimeout Содержит число секунд ожидания при подключении. По умолчанию — 15
CommandTimeout Содержит число секунд ожидания при выполнении команды. По умолчанию — 30
Execute(CommandText) Выполняет запрос, осуществляет вызов хранимой процедуры или любой другой команды доступной на стороне провайдера.

Recordset – объект представляющий из себя набор записей (строк) таблицы данных

ActiveConnection Определяет объект типа Connection. В качестве значения можно задавать как объект типа Connection, так и текстовую строку аналогичного вида, как и свойство ConnectionString у объекта Connection
ActiveCommand Определяет объект типа Command в результате выполнения которого был получен данный RecordSet
Filter Содержит фильтр данных, который необходимо применить к данному RecordSet.
Close Закрывает объект RecordSet
Requery Выполняет обновление объекта путем повторного запроса к таблице. Аналогичен последовательному вызову Close() Open()
BOF/ EOF Признаки начала/конца таблицы. Если BOF=Истина, тогда указатель находиться перед первой записью объекта RecordSet. Если EOF = Истина, тогда указатель находится после последней записи объекта RecordSet
Move Осуществляет сдвиг указателя текущей записи вперед на указанное количество записей (или назад, если это число отрицательное)
MoveFirst Осуществляет сдвиг указателя на первую запись
MoveLast Осуществляет сдвиг указателя на последнюю запись
MoveNext Осуществляет сдвиг указателя на следующую запись
MovePrevious Осуществляет сдвиг указателя на предыдущую запись
Fields Содержит коллекцию полей. Через конструкцию (“Имя_Поля”).Value можем получить значение указанного в текущей строке.
Find Осуществляет поиск строки по заданным критериям.
GetString Позволяет получить строковое представление текущей строки

Command – объект обеспечивающий выполнение команд или SQL-запросов

© 2024 dhmoscow.ru - Компьютер надо изучать