tdbc_odbc
-
НАЗВАНИЕ
- tdbc::odbc — мост TDBC-ODBC
- СИНТАКСИС
- ОПИСАНИЕ
-
add
- add_system
- configure
- configure_system
- remove
- remove_system
- add_system
Имя
tdbc::odbc — мост TDBC-ODBCСинтаксис
package require tdbc::odbc 1.0tdbc::odbc::connection create db connectionString ?-option value...?
tdbc::odbc::connection new connectionString ?-option value...?
tdbc::odbc::datasources ?-system|-user?
tdbc::odbc::drivers
tdbc::odbc::datasource command driverName ?keyword-value?...
Описание
Драйвер tdbc::odbc предоставляет интерфейс к базам данных, соответствующий Tcl DataBase Connectivity (TDBC), и позволяет Tcl-скрипту подключаться к любой СУБД, предоставляющей интерфейс ODBC. Он также является наглядным примером написания драйвера базы данных на C, предоставляя основу для дальнейшего развития.Подключение к базе данных ODBC осуществляется вызовом tdbc::odbc::connection create, передавая ему имя, которое будет использоваться в качестве дескриптора подключения, и стандартную строку подключения ODBC. В качестве альтернативы можно использовать tdbc::odbc::connection new для создания подключения к базе данных с автоматически назначенным именем. Значение, возвращаемое tdbc::odbc::connection new, — это выбранное имя для дескриптора подключения.
Строка подключения должна содержать как минимум ключевое слово DRIVER или DSN и может содержать другие ключевые слова, определённые конкретным драйвером ODBC. (Если локальная система ODBC поддерживает графический интерфейс, параметр -parent (см. ниже) может позволить вызывать tdbc::odbc::connection create со пустой строкой подключения.)
Побочным эффектом tdbc::odbc::connection create является создание нового подключения к базе данных. Подробности использования подключения для работы с базой данных см. в tdbc::connection(n).
В дополнение к стандартному TDBC интерфейсу, tdbc::odbc поддерживает три дополнительных команды. Первая из них, tdbc::odbc::datasources, возвращает список Tcl, перечисляющий именованные источники данных, доступные программе (для подключения с ключевым словом DSN в строке подключения). Результат tdbc::odbc::datasources может быть ограничен только системными источниками данных или только источниками данных пользователя путём включения параметров -system или -user соответственно.
Команда tdbc::odbc::drivers возвращает словарь, ключами которого являются имена драйверов, доступных для ключевого слова DRIVER в строке подключения, а значениями — описания драйверов.
Команда tdbc::odbc::datasource позволяет настроить именованные источники данных на системах, поддерживающих интерфейс программирования приложения ODBC Installer. Она принимает команду, определяющую операцию, имя драйвера базы данных, и набор пар «ключ-значение», которые интерпретируются заданным драйвером. Команда должна быть одной из следующих:
- add
- Добавляет пользовательский источник данных. Параметры «ключ-значение» должны включать как минимум параметр DSN, задающий имя источника данных
- add_system
- Добавляет системный источник данных. Параметры «ключ-значение» должны включать как минимум параметр DSN, задающий имя источника данных
- configure
- Настраивает пользовательский источник данных. Параметры «ключ-значение» обычно включают параметр DSN, задающий имя источника данных. Некоторые драйверы будут поддерживать и другие параметры, например, параметр CREATE_DB для драйвера Microsoft Access на Windows.
- configure_system
- Настраивает системный источник данных.
- remove
- Удаляет пользовательский источник данных. Параметры «ключ-значение» должны включать параметр DSN, задающий источник данных для удаления.
- remove_system
- Удаляет системный источник данных. Параметры «ключ-значение» должны включать параметр DSN, задающий источник данных для удаления.
Параметры подключения
Команда объекта tdbc::odbc::connection create поддерживает параметры -encoding, -isolation, -readonly и -timeout, общие для всех драйверов TDBC. Параметр -encoding будет успешным только если запрошенный кодировка совпадает с кодировкой системы; tdbc::odbc не пытается указать альтернативные кодировки драйверу ODBC. (Некоторые драйверы принимают спецификации кодировки в строке подключения.)Кроме того, если Tk присутствует в интерпретаторе, и локальный драйвер менеджера ODBC поддерживает графический интерфейс, команда объекта tdbc::odbc::connection create поддерживает параметр -parent, значением которого является имя пути окна Tk. Если этот параметр указан, и строка подключения не содержит всей необходимой информации для подключения к интерфейсу, менеджер драйверов ODBC отобразит диалоговое окно, чтобы запросить любую дополнительную информацию. Интерпретатор ожидает, пока пользователь не закроет диалоговое окно, после чего подключение устанавливается.
Примеры
Поскольку строки подключения ODBC зависят от драйвера, часто бывает сложно найти необходимую документацию для их составления. Следующие примеры работают на большинстве систем Windows и демонстрируют по крайней мере несколько полезных действий, которые может выполнять программа.tdbc::odbc::connection create db \
"DSN={PAYROLL};UID={aladdin};PWD={Sesame}" Подключается к именованному источнику данных "PAYROLL", используя "aladdin" в качестве имени пользователя и "Sesame" в качестве пароля. Имя подключения — db.
set connString {DRIVER={Microsoft Access Driver (*.mdb)};}
append connString {FIL={MS Access}\;}
append connString {DBQ=} \
[file nativename [file normalize $fileName]]
tdbc::odbc::connection create db2 -readonly 1 $connString Открывает подключение к файлу базы данных Microsoft Access, имя которого содержится в $fileName. База данных открывается в режиме только для чтения. Результирующее подключение называется "db2".
tdbc::odbc::connection create db3 \
"DRIVER=SQLite3;DATABASE=$fileName" Открывает подключение к базе данных SQLite3, имя которой содержится в "$fileName".
tdbc::odbc::datasource add \
{Microsoft Access Driver (*.mdb)} \
DSN=MyTestDatabase \
DBQ=[file native [file normalize $fileName]] Создаёт новый пользовательский источник данных с именем "MyTestDatabase", связанный с файлом Microsoft Access, путь к которому содержится в "$fileName". Подключение к источнику данных не осуществляется до тех пор, пока программа не вызовет tdbc::odbc::connection create.
tdbc::odbc::datasource configure \
{Microsoft Access Driver (*.mdb)} \
CREATE_DB=[file native [file normalize $fileName]] \
General Создаёт новую пустую базу данных Microsoft Access в файле, идентифицированном именем "$fileName". Подключение к базе данных не осуществляется до тех пор, пока программа не вызовет tdbc::odbc::connection create. См. также
tdbc, tdbc::connection, tdbc::resultset, tdbc::statementАвторские права
Авторские права (c) 2008 г. Кевин Б. Кенни.
Licensed under Tcl/Tk terms
https://www.tcl.tk/man/tcl/TdbcodbcCmd/tdbc_odbc.htm