Пример работы с файлами DBF по интерфейсу ADO из 1С v 7.7 Ключевые слова: ADO, DBF, выгрузка, загрузка, файл, Dbase, FoxPro, ODBC, XBase, ошибка
Драйвер ADO уже встроен в систему, и дополнительно устанавливать его не нужно. Он представляет собой всего лишь удобную Active-X оболочку для доступа к данным, которую можно использовать почти из любых языков и сред программирования (включая 1С:Предприятие 7.7 и 8.0).
Интерфейс ADO во многих случаях более удобен и безопасен для работы с файлами DBF, чем штатный объект 1С:
- Выводит понятные сообщения при ошибках.
- Не обрушивает систему 1С при ошибках (в отличие от штатного XBase).
- Позволяет одновременно и без проблем открывать несколько файлов.
- Имеет удобный SQL-подобный синтаксис запросов (не надо изучать нестандартные интерфейсы).
Тот же самый драйвер ADO можно применять для доступа к самым разным источникам данных (например, к базе Oracle), с небольшими отличиями в строке подключения.
Строки подключения для разных источников данных можно найти здесь:
http://www.connectionstrings.com/
Ниже приведен пример создания, заполнения и чтения файла 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 килобайта, скачивать ЛЕВОЙ кнопкой мыши). |