ODBC из командной строки Windows

ODBC алиас из командной строки Windows
В этой статье хочу рассказать как просто создать ODBC из командной строки в Windows XP.
ODBC строки подключения бывают Пользовательские, то есть доступны для текущего пользователя; Системные — доступны для всех пользователей компьютера и Файловые. Я использую системные. Для чего вообще нужно создавать из командной строки? Ведь можно просто зайти в Панель управления — Администрирование — Источники данных (ODBC) и создать нужное соединение с базой вручную. Да, совершенно верно, можно и так. Но! Если у вас много компьютеров? А если вы передаете свой дистрибутив программы заказчику на самостоятельную установку? Проще делать это из командной строки.

Итак, для создания нового источника данных (или еще можно сказать — алиаса) ODBC из командной строки я использую встроенную в Windows XP утилиту odbcconf.exe. Вызвав "odbcconf /?" можно посмотреть ключи запуска. Всё очень просто: для создания системного источника нам нужен параметр CONFIGSYSDSN.
Проще будет показать примеры готовых cmd файлов.
Этот пример показывает создание источника данных с именем Alias базы MyBase для MS SQL сервера на сервере с именем SERVER и аутентификацией Windows:

odbcconf CONFIGSYSDSN "SQL server" "DSN=Alias|Server=SERVER|database=MyBase|Trusted_Connection=Yes"

Пример создания источника для MS Access с именем Client для таблицы C:\client.mdb:

odbcconf CONFIGSYSDSN "Microsoft Access Driver (*.mdb)" "DSN=Client|Driver=C:\WINDOWS\system32\odbcjt32.dll|FIL=MS Access|DBQ=C:\client.mdb|UID=DBA|PWD=pass|Description=Client"

Здесь Имя пользователя DBA, пароль pass, описание Client.

Видно, что для каждого типа источника, будь то MS SQL, Access или Visual FoxPro, нужны разные имена параметров. Все их знать не обязательно. И вот тут очень простая хитрость. Даже не хитрость, а так 🙂
Все системные источники данных хранятся в реестре Windows. Путь их хранения: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\. Если нужно создать источник данных для любого драйвера БД, я вручную создаю его через Панель управления — Администрирование — Источники данных (ODBC), затем открываю реестр, нахожу созданный источник и в его значениях все эти имена параметров как на ладони. Например, нам нужно узнать какие параметры будут нужны в командной строке для создания источника подключения к Excel. Для этого вручную создаем источник с именем test к файлу c:\test.xls. Смотрим в реестр и видим:
cтрока ODBC хранится в реестре Windows

Аккуратно переписываем параметры и получаем по аналогии с вышеуказанными примерами следующую командную строку для создания такого ODBC подключения:

odbcconf CONFIGSYSDSN "Microsoft Excel Driver (*.xls)" "DSN=test|DBQ=c:\test.xls|DefaultDir=C:|Description=Test"

Итак, что мы имеем. Варьируя вручную параметры алиаса из Панели Управления и наблюдая результат в реестре Windows по адресу HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\, можно создать любой ODBC алиас из командной строки Windows.

Это всё. Если есть вопросы или у Вас есть что дополнить к этой теме, пишите в комментариях.

ODBC из командной строки Windows: 6 комментариев

  1. @ Ivan:
    Какой источник данных? Если MSSQL, то неверно ставите параметры пользователя.
    Пример:

    odbcconf CONFIGSYSDSN «SQL server» «DSN=Alias|Server=SQLServer|database=Mybase| Trusted_Connection=No»

    а имя пользователя и пароль вводятся при соединении. Если хотите чтобы автоматически такой ODBC-Алиас срабатывал, то это надо делать уже средствами своей программы.

  2. а как из готового файлового источника данных прочитать параметры и создать системный источник данных?

  3. @ letu:
    Решений может быть несколько. От написания своей программы, которая будет читать текстовый файл, анализировать его данные и после обработки данных создавать источник данных до чтения этого текстового файла с помощью пакетного файла. Лично мне было бы проще быстренько написать какую-нибудь программку, чем разбираться с командной строкой.

  4. Есть самый простой способ добавлять ODBC, через командную строку, как один, так и сотню.
    1. Добавить руками один DSN в администрировании с именем BazaPrimer и вашими параметрами.
    2. Открыть реестр в ветке HKU/Software/ODBC/ODBC.INI
    3. Экспортировать две папки: odbc data sourcer и BazaPrimer в файл *.reg
    4. Объедините файлы *.reg в один
    5. Открыв файл, вы увидите все свои параметры. Меняйте BazaPrimer на другое имя и у вас есть новый DSN. Запускайте reg через командную строку или как вам угодно.
    Удобно, быстро.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *