- Microsoft dBase драйвер
- Строка подключения Microsoft dBase driver
- Driver
- CollatingSequence
- Deleted
- DriverId
- ReadOnly
- Exclusive
- Примеры строки подключения Microsoft dBase
- Особенности Microsoft dBase
- Длинные имена таблиц
- Кодировка текста в DBF файлах
- Узнать больше
- Драйверы ODBC Майкрософт для баз данных на настольном компьютере Microsoft ODBC Desktop Database Drivers
- Источники данных ODBC 32 и 64 разрядная версия Windows 10
- Чтение dbf-файла через ODBC Foxpro драйвер
- Специальные предложения
- SQLDriverConnect (драйвер для dBASE) SQLDriverConnect (dBASE Driver)
Microsoft dBase драйвер
Microsoft dBase driver обеспечивает подключение к файлами DBF и DBT по ODBC.
- Драйвер предустановлен в современных версиях Windows – не требуется установка дополнительных компонентов для работы с dBase
- Файлы DBF хранят однобайтовый текст – хранить Unicode текст в текстовых полях не получится
- Работа с таблицами, название которых длинее 8 символов, требует дополнительных действий, об этом ниже
Поэтому применять dBase для новых проектов не рекомендуется, для локальных решений лучше использовать Microsoft Access driver (*.mdb).
Строка подключения Microsoft dBase driver
Driver
CollatingSequence
Порядок сортировки текста (не кодировка). Возможные значения
- ASCII — сортировка символов как ASCII текста, значение по умолчанию
- International — международная сортировка символов
- Norwegian-Danish — норвежско-датская сортировка символов
- Swedish-Finnish — шведско-финская сортировка символов
Обязательный параметр. Каталог с файлами DBF.
Текущий каталог можно указать точкой DBQ=.
Deleted
Показывать или не показывать удалённые записи (поскольку в DBF при удалении из таблицы запись просто помечается как удалённая, но физически не удаляется из файла):
- 0 — не показывать удалённые записи
- 1 — показывать удалённые записи как обычные
DriverId
Числовой идентификатор типа драйвера
- 21 — dBASE III
- 277 — dBASE IV
- 533 — dBASE 5.0, значение по умолчанию
ReadOnly
Позволяет ограничить внесение изменений.
- 0 — доступ на чтение и изменение, значение по умолчанию
- 1 — доступ только на чтение
При попытке внесения изменений на подключении с ReadOnly=1 выдаётся ошибка:
Exclusive
Задаёт исключительный доступ (также называется монопольный доступ) к базе данных.
- 0 — обычный доступ, другие программы могут одновременно работать с базой данных, значение по умолчанию
- 1 — исключительный доступ, другие программы не смогут работать с базой данных
Примеры строки подключения Microsoft dBase
Текущий каталог, только на чтение:
Каталог C:\Program\Database, монопольный доступ:
Примеры SQL запроса на выборку данных из БД Microsoft dBase:
Примеры SQL запроса на обновление данных в БД Microsoft dBase:
Особенности Microsoft dBase
Длинные имена таблиц
Если имя таблицы имеет длину больше 8 символов, то запрос с таким именем будет давать ошибку 42000:
Это происходит потому, что Microsoft dBase driver работает только с короткими именами файлов – 8.3, и поэтому вместо длинных имён нужно указывать короткие имена файлов, к тому же в квадратных скобках:
Автоматически в bat файле можно определить короткие имена через dir /x:
Кодировка текста в DBF файлах
ODBC драйвер Microsoft dBase использует кодировку OEM (866 для русской Windows) для текста в DBF файлах, и это значение изменить нельзя.
Байт 29 в заголовке DBF используется для обозначения кодировки текста (Code Page Mark) в FoxPro (см. Table File Structure, Code Pages Supported by Visual FoxPro), но не ODBC драйвером Microsoft dBase.
Поэтому при одновременном использовании Microsoft dBase и, например, BDE необходимо настроить BDE на хранение текста в OEM (866) кодировке.
Узнать больше
nhdbt — консольная программа для выполнения SQL запросов
Драйверы ODBC Майкрософт для баз данных на настольном компьютере Microsoft ODBC Desktop Database Drivers
ODBC — это API, который использует язык SQL (SQL) в качестве языка доступа к базе данных. ODBC is an API that uses Structured Query Language (SQL) as the database access language. Вы можете получить доступ к широкому спектру систем управления базами данных (СУБД) с тем же исходным кодом ODBC, который напрямую включен в исходный код приложения. You can access a wide variety of database management systems (DBMSs) with the same ODBC source code that is directly incorporated into an application’s source code. С драйверами базы данных Microsoft ODBC для настольных компьютеров пользователь приложения, поддерживающего ODBC, может открывать, запрашивать и обновлять базу данных настольных систем через интерфейс ODBC. With the Microsoft ODBC Desktop Database Drivers, a user of an ODBC-enabled application can open, query, and update a desktop database through the ODBC interface.
Драйверы Microsoft ODBC для настольных систем представляют собой набор драйверов ODBC на основе Microsoft Jet. The Microsoft ODBC Desktop Database Drivers are a Microsoft Jet-based set of ODBC drivers. В то время как 2,0 драйверы базы данных Microsoft ODBC для настольных систем включают как 16-разрядные, так и 32-разрядные драйверы, версии 3,0 и более поздних версий включают только 32-разрядные драйверы, работающие под управлением Windows 95 или более поздней версии, Windows NT Workstation или Server Version 4,0, Windows 2000 Professional или Windows 2000 Server. Whereas Microsoft ODBC Desktop Database Drivers 2.0 include both 16-bit and 32-bit drivers, versions 3.0 and later include only 32-bit drivers that work on Windows 95 or later, Windows NT Workstation or Server version 4.0, Windows 2000 Professional, or Windows 2000 Server. Эти драйверы предоставляют доступ к следующим типам источников данных: These drivers provide access to the following types of data sources:
Microsoft Access Microsoft Access
Microsoft Excel Microsoft Excel
Подробную документацию по драйверу ODBC для Microsoft Visual FoxPro® см. в разделе драйвер ODBC для Visual FoxPro . See Visual FoxPro ODBC Driver for detailed documentation about the Microsoft Visual FoxPro® ODBC Driver.
Доступ к другим источникам данных, таким как Lotus 1-2-3, Microsoft Exchange и HTML, включается с помощью устанавливаемых драйверов ISAM (IISAM). Access to other data sources, such as Lotus 1-2-3, Microsoft Exchange, and HTML, is enabled by installable ISAM (IISAM) drivers. Дополнительные сведения об этих драйверах см. в разделе «доступ к внешним данным» статьи Справочник программиста по Microsoft Jet ядро СУБД. For more information about these drivers, see «Accessing External Data» in the Microsoft Jet Database Engine Programmer’s Reference. Драйверы для баз данных ODBC для настольных систем 4,0 не поддерживают форматы данных Btrieve и EMS. ODBC Desktop Database Drivers 4.0 do not support Btrieve and EMS data formats.
Этот раздел содержит следующие подразделы. This section contains the following topics.
Источники данных ODBC 32 и 64 разрядная версия Windows 10
Продолжаем разбор функций операционной системы Windows 10. Сегодня речь пойдёт об источнике данных ODBC на 32 разрядной версии компьютера Windows 10. ODBS – это программный интерфейс, позволяющий приложениям получать доступ к данным в системах управления базами данных (СУБД), основанных на языке SQL. Чтобы открыть окно администратора источника данных ODBC, в нижнем левом углу экрана нажмите на кнопку Пуск. В открывшемся окне нажмите на вкладку – Все приложения .
Далее, в списке всех приложений, в самом низу, нажмите на вкладку Средства администрирования . В открывшемся списке нажмите на вкладку – Источники данных ODBC (32 разрядная версия) . Обратите внимание, что здесь есть ODBC и для 64 разрядной версии Windows 10. Как узнать версию своего ПК на Windows 10.
Далее, у вас откроется окно администратора ODBC. Здесь вы сможете работать со следующими функциями:
– Пользовательский DSN, пользовательский источник данных ODBC сохраняет сведения о том, как подключиться к указанному поставщику данных. Пользовательский источник данных является видимым только для вас и может использоваться только на текущем компьютере.
– Трассировка ODBC позволяет создавать журналы вызовов драйверов ODBC для использования службой поддержки или для оказания помощи при отладке приложений.
– Системный DSN, системный источник данных ODBC сохраняет сведения о том, как подключиться к указанному поставщику данных. Системный источник данных является видимым для всех пользователей на этом компьютере, включая службы NT.
– Пул соединений позволяет приложению повторно использовать открытые дескрипторы соединений, что позволяет уменьшить число обменов данными с сервером.
– Файловый DSN, файловый источник данных ODBC позволяет установить связь с этим источником. Пользователи, у которых установлены одинаковы драйверы, могут применять их совместно.
– Драйверы ODBC позволяют программам ODBC получать сведения из источника данных ODBC. Драйверы устанавливаются с помощью программы установки.
64 разрядная версия имеет такого же администратора ODBC.
Чтение dbf-файла через ODBC Foxpro драйвер
В 1С предприятии есть замечательный объект XBase, при помощи которого можно читать и записывать dbf-файлы. Увы, этот объект понимает не все форматы dbf и тогда на помощь приходят ODBC-драйверы. Вот пример чтения файла c:\primer.dbf с использованием FoxPro ODBC Driver (скачать можно отсюда: http://download.microsoft.com/download/vfoxodbcdriver/Install/6.1/W9XNT4/EN-US/VFPODBC.msi
Специальные предложения
(2) Йожкин Кот, можете привести полную строку инициализации?
Вроде нет проблемы прочитать dbf, но пришлось потратить 2 часа, чтобы получить работающий пример (то драйвера не идут, то строка иницализации дает ошибку, то кодировка не та). У меня WindowsXP, на других операционках не проверял.
(4) Строка инициализации для ВСЕХ провайдеров ADODB делается просто: создаем пустой файл с расширением udl, «запускаем» его и выбираем в конструкторе нужного провайдера и его настройки. Сохраняем файл, открываем его блокнотом и копируем строку инициализации.
ЗЫ: с кодировкой могут быть проблемы только в одном случае — в заголовке файла dbf не выбран (не верно выбран) код кодировки. Самый правильный способ исправления — исправить заголовок и не нужно никаких танцев с бубном, правок системных библиотек и реестра.
здесь немного неверный синтаксис запроса — не задействован индекс
Когда мне понадобилось загрузить данные из dbf, я подумал — нет проблем (больше десятка раз грузил через xbase). А тут открываю этот dbf-файл, а в некоторых полях записано «неопределено». Значит, надо через ODBC действовать (через ВИД не катит, т.к. конфигурация закрыта). Я не нашел в инете четкой инструкции , как подключить и загрузить данные через ODBC-драйвер (да еще и вопрос — какой драйвер использовать)! На инфостарте тоже не нашел (хотя, может, плохо искал). В общем, через два часа получил работающий вариант и решил его опубликовать, дабы другие не тратили эти два часа (они могут ох как понадобиться для другого).
Я не претендую на приоритет или копирайт, я просто написал рецепт, который работает в определенных условиях. А статьи по ADO найти не проблема. Но когда я искал пути решения, мне нужен был именно рецепт, а не рассуждения про широкие возможности ADO, ODBC и ссылки на другие интересные статьи (я их немало прочел, даже не возьмусь кого-то особо выделить).
Если кто знает, дайте ссылку на аналогичную публикацию (мне и другим только польза будет). Мне кажется, статьи типа «самодостаточный рецепт» имеют право на существование. Одно дело обзорная статья, описывающая возможности технологии вообще (даже с частым примером) и другое дело — как применить эту технологию для решения этой конкретной задачи (возникают тонкости, никак не описанные в статье). Читаешь статьи, где упоминаются ADO, OLEDB, MDAC, JET4.0, ODBC и другие «страшные» слова, скачиваешь драйверы, устанавливаешь, подключаешься — и НЕ РАБОТАЕТ. Вот для тех, кому важен результат, а не процесс и разборки, я и написал эту статью.
(7) yuraos , если у Вас есть готовый рецепт чтения dbf через ADO — напишите статью, я и другие только спасибо скажем. Тогда по словам «dbf, ODBC» будет показываться моя статья, а по «dbf, ADO» — Ваша и каждый желающий сможет быстро найти то, что ему надо.
SQLDriverConnect (драйвер для dBASE) SQLDriverConnect (dBASE Driver)
В этом разделе приводятся сведения, относящиеся к драйверу dBASE. This topic provides dBASE Driver-specific information. Общие сведения об этой функции см. в соответствующем разделе справочника по API ODBC. For general information about this function, see the appropriate topic under ODBC API Reference.
SQLDriverConnect позволяет подключаться к драйверу без создания источника данных (DSN). SQLDriverConnect enables you to connect to a driver without creating a data source (DSN).
В строке подключения для всех драйверов поддерживаются следующие ключевые слова: DSN, ДБК и. The following keywords are supported in the connection string for all drivers: DSN, DBQ, and FIL.
При использовании драйвера Paradox после открытия пользователем файла, защищенного паролем, другим пользователям не разрешается открывать тот же файл. When the Paradox driver is used, after a password-protected file has been opened by a user, other users are not allowed to open the same file.
В следующей таблице приведены минимальные ключевые слова, необходимые для подключения к каждому драйверу, а также пример пар «ключевое слово-значение», используемых с SQLDriverConnect. The following table shows the minimum keywords required to connect to each driver, and provides an example of keyword/value pairs used with SQLDriverConnect. Полный список значений ДРИВЕРИД см. в разделе SQLConfigDataSource. For a full list of DRIVERID values, see SQLConfigDataSource.
Если ДБК или Дефаултдир не указаны для Дбаседривер, драйвер будет подключаться к текущему каталогу. If DBQ or DefaultDir is not specified for the dBASEdriver, the driver will connect to the current directory.