Книга знаний

1С:Предприятие / Приемы программирования / Обмен данными, УРБД

Пример работы с файлами DBF по интерфейсу ADO

В статье описан пример работы с файлами DBF по интерфейсу ADOАвтор статьи:
Последняя редакция №1 от 24.07.06
URL: http://kb.mista.ru/article.php?id=309

Ключевые слова: dbf, выгрузка, загрузка, файл, Dbase, FoxPro, ODBC, XBase, ошибка


Драйвер ADO уже встроен в систему, и дополнительно устанавливать его не нужно. Он представляет собой всего лишь удобную Active-X оболочку для доступа к данным, которую можно использовать почти из любых языков и сред программирования (включая 1С:Предприятие 7.7 и 8.0).

Интерфейс ADO во многих случаях более удобен и безопасен для работы с файлами DBF, чем штатный объект 1С:

  • Выводит понятные сообщения при ошибках.

  • Не обрушивает систему 1С при ошибках (в отличие от штатного XBase).
  • Позволяет одновременно и без проблем открывать несколько файлов.

  • Имеет удобный SQL-подобный синтаксис запросов (не надо изучать нестандартные интерфейсы).


Тот же самый драйвер ADO можно применять для доступа к самым разным источникам данных (например, к базе Oracle), с небольшими отличиями в строке подключения.


Ниже приведен пример создания, заполнения и чтения файла DBF.


//*******************************************
Процедура Сформировать() 
  
    
 //РАБОТА С ФАЙЛАМИ DBF ЧЕРЕЗ ADO    
    
    
  Path="c:\"; //Путь к папке с файлами DBF
  
  //Стираем файл, если он уже существует
  Если фс.СуществуетФайл("c:\persons.dbf")=1 Тогда
      фс.УдалитьФайл("c:\persons.dbf");
  КонецЕсли;    
  
  //******* ПРИМЕР ЗАПИСИ DBF *******//

  //Открываем соединение
  DBConn = CreateObject("ADODB.Connection");
  DBConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;" +
                   "Data Source=" + Path + ";" +
                   "Extended Properties=""DBASE IV;"";");           

  //Создаем новый DBF и задаем его колонки
  DBConn.Execute("Create Table Persons (Name char(50), City char(50), Phone char(20), Zip decimal(5))");

  //Пишем строки в наш DBF
  DBConn.Execute("Insert into Persons Values('Иванов И.И.', 'Москва','123-45-67','14589')");
  DBConn.Execute("Insert into Persons Values('Поляков С.Л.', 'Москва','333-44-55','38215')");
  DBConn.Execute("Insert into Persons Values('Сидоров С.С.', 'Москва','222-33-44','54323')");
  
  
  
  //******* ПРИМЕР ЧТЕНИЯ DBF *******//
  

  //Делаем выборку 
  Persons = DBConn.Execute("Select * from [Persons#DBF]");


  Пока Persons.EOF=0 Цикл //Цикл по записям DBF
    
    Имя=    Persons.Fields("Name").value;
    Город=  Persons.Fields("City").value;
    Телефон=Persons.Fields("Phone").value;
    Zip=    Persons.Fields("Zip").value;
    
    Сообщить("Имя="+Имя+" Город="+Город+" Телефон="+Телефон+" Zip="+Zip);
    
    Persons.MoveNext(); //Переходим к след. записи DBF
  КонецЦикла;

  DBConn.Close(); //Закрываем соединение
                   
КонецПроцедуры




http://x-romix.narod.ru/ado_dbf.zip
(размер файла ert - 4 килобайта, скачивать ЛЕВОЙ кнопкой мыши).

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика