Гид по технологиям

Как создать ODBC‑подключение в VBScript

5 min read Базы данных Обновлено 14 Dec 2025
VBScript: ODBC‑подключение к базе
VBScript: ODBC‑подключение к базе

Разработчик пишет код на ноутбуке

Что нужно заранее

  • Наличие самой базы данных (SQL Server, MS Access, файл CSV/Excel или другой источник).
  • Подходящий ODBC‑драйвер, установленный на машине, где будет выполняться скрипт.
  • Понимание, будете ли вы использовать System DSN, User DSN или File DSN, либо предпочитаете DSN‑less строку.

Для подключения и получения данных в VBScript обычно используется библиотека ActiveX Data Objects (ADO). Ключевые объекты ADO:

  • Connection — объект соединения с источником данных.
  • Recordset — набор записей/результатов SQL‑запроса.
  • Command — объект для выполнения команд/процедур (опционально).

Что такое DSN и из чего он состоит

DSN (Data Source Name) задаёт параметры подключения через ODBC‑драйвер. Типичные поля в DSN:

  • имя базы данных
  • путь/каталог (для файловых БД)
  • выбранный драйвер ODBC
  • UserID и Password (если требуется)

Типы DSN:

  • System DSN — создаётся администратором на сервере и доступен всем пользователям системы.
  • File DSN — файл с параметрами подключения, который можно хранить вместе со скриптом.

Что такое ODBC

ODBC (Open Database Connectivity) — общий протокол/интерфейс для подключения приложений к разным СУБД через драйверы ODBC.

Добавление ODBC‑источника в системе (кратко)

  • Установите нужный ODBC‑драйвер для вашей СУБД.
  • Откройте «Пуск», затем «Панель управления».

Меню «Панель управления» в Windows

  • В Панели управления откройте «Администрирование».

Раздел «Администрирование» в Панели управления Windows

  • В «Администрировании» запустите «Источники данных ODBC (32‑бит)» или «Источники данных ODBC (64‑бит)» в зависимости от архитектуры вашего процесса.

  • В диалоге администратора ODBC выберите User DSN, System DSN или File DSN и нажмите «Добавить».

Окно администратора источников данных ODBC

  • Выберите драйвер и следуйте мастеру, вводя параметры подключения (сервер, база, авторизация и т. п.).

Список доступных драйверов ODBC в мастере добавления

Совет: используйте тот же «битность» ODBC‑администратора, что и процесс, который будет запускать ваш VBScript (Windows Script Host, IIS‑процесс, планировщик задач и т. п.).

Пример: подключение и выполнение запроса через ADODB

Ниже — чистый пример VBScript, который открывает соединение, выполняет SELECT и выводит значение. Код написан с минимальной обработкой ошибок и демонстрационной целью.

Set conn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")

' Откройте соединение (пример DSN‑less для SQL Server)
conn.Open "Provider=SQLNCLI11;Server=.\SQLEXPRESS;Database=AUTODB;Uid=test;Pwd=P@123;"

sql = "SELECT acctno FROM dbo.acct WHERE name = 'Wini Bhalla'"

rs.Open sql, conn

If Not rs.EOF Then
  val1 = rs.Fields(0).Value
  MsgBox val1
End If

rs.Close
conn.Close
Set rs = Nothing
Set conn = Nothing

Примечание: в строке подключения можно использовать DSN:

conn.Open "DSN=MyDSN;Uid=test;Pwd=P@123;"

Или драйвер‑ориентированную строку:

conn.Open "Driver={SQL Server};Server=myServer;Database=myDB;Uid=user;Pwd=pass;"

Примеры ошибок и когда подключение не работает

  • Неправильная «битность» (32‑бит vs 64‑бит): 32‑битный процесс не увидит DSN, созданный в 64‑битном администраторе.
  • Отсутствует драйвер ODBC для целевой СУБД.
  • Неправильные имя пользователя/пароль или методы аутентификации (Windows vs SQL Authentication).
  • Брандмауэр или сетевая недоступность сервера.
  • Неправильный путь к файловой базе (для Access/Excel/CSV).

Важно: всегда тестируйте строку подключения в администраторе ODBC или с помощью UDL‑файла перед запуском скрипта.

Альтернативные подходы

  • Использовать OLE DB (Provider) вместо ODBC, если драйвер OLEDB лучше поддерживается для вашей СУБД.
  • Для современных сценариев — применять PowerShell (System.Data.SqlClient / SqlServer модуль) или .NET (ADO.NET) вместо VBScript.
  • Для кроссплатформенных задач — использовать Python с pyodbc.

Мини‑методология для внедрения подключения

  1. Определите источник данных и требуемый драйвер.
  2. Установите и протестируйте драйвер (через ODBC Admin или UDL).
  3. Решите: DSN или DSN‑less (на проде DSN обычно удобнее для централизованного управления).
  4. Напишите VBScript с обработкой ошибок и логированием.
  5. Тестируйте в среде, совпадающей по архитектуре (32/64‑бит) и привилегиям.
  6. Переведите учётные данные в безопасное хранилище (не в скрипт в явном виде).

Ролевые чек‑листы

  • Разработчик:

    • Проверить, что скрипт корректно закрывает объекты Connection и Recordset.
    • Добавить обработку ошибок и лог.
    • Использовать параметры запроса, а не конкатенацию строк (чтобы избежать SQL‑инъекций).
  • DBA/Сисадмин:

    • Установить и поддерживать нужные ODBC‑драйверы.
    • Создать System DSN для сервисов, если нужно.
    • Настроить права доступа и брандмауэр.
  • QA:

    • Проверить подключение в тестовой сети и с тестовыми учётками.
    • Осуществить нагрузочное тестирование при большом числе открытий/закрытий соединений.

Шпаргалка: часто используемые строки подключения

  • SQL Server (SQL Authentication, DSN‑less): Driver={SQL Server};Server=SERVER_NAME;Database=DB_NAME;Uid=USER;Pwd=PASSWORD;

  • SQL Server (OLE DB): Provider=SQLNCLI11;Server=SERVER_NAME;Database=DB_NAME;Uid=USER;Pwd=PASSWORD;

  • MS Access (файловая база): Driver={Microsoft Access Driver (.mdb, .accdb)};DBQ=C:\path\to\db.accdb;

  • DSN (использовать имя DSN): DSN=MyDSN;Uid=USER;Pwd=PASSWORD;

Критерии приёмки

  • Скрипт устанавливает и закрывает соединение без утечек (Connection/Recordset = Nothing).
  • Запросы возвращают ожидаемые данные в тестовой среде.
  • Прохождение тестов на целевой архитектуре (32/64‑бит).
  • Секреты хранятся вне кода (например, в защищённом файловом хранилище или переменных окружения).

Безопасность и лучшие практики

  • Не храните пароли в открытом виде в скриптах.
  • Предпочитайте аутентификацию Windows (Trusted Connection), если это возможно.
  • Ограничивайте права учётной записи на уровне базы данных.

Короткий глоссарий

  • DSN — имя источника данных (Data Source Name).
  • ODBC — стандарт для подключения к базам данных через драйверы.
  • ADO — ActiveX Data Objects, коллекция COM‑объектов для работы с данными.
  • Recordset — объект, содержащий результаты запроса.

Короткое резюме

Настройка ODBC‑подключения для VBScript — это два простых шага: подготовить/зарегистрировать источник данных (DSN или DSN‑less строка) и выполнить подключение через ADODB.Connection, затем прочитать результат через ADODB.Recordset. Главное — корректно тестировать на нужной архитектуре и не хранить пароли в чистом виде.

Важно: перед деплоем проверьте, что тот процесс, который запускает ваш VBScript (WSH, IIS, планировщик), использует тот же набор ODBC‑источников и ту же «битность», что и созданные вами DSN.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Обновление до Windows 10 Creators Update бесплатно
Windows

Обновление до Windows 10 Creators Update бесплатно

Виртуальный диск в Windows 11 — как включить
Windows

Виртуальный диск в Windows 11 — как включить

Как транслировать видео с Windows 10 на Xbox One
Гайды

Как транслировать видео с Windows 10 на Xbox One

Исправление кодов ошибок Disney Plus
Стриминг

Исправление кодов ошибок Disney Plus

Как сменить пароль ребёнка в Microsoft Family
Руководство

Как сменить пароль ребёнка в Microsoft Family

Как изменить обложку профиля на PS4
Гайды

Как изменить обложку профиля на PS4