Вместе с ATcl вы получаете интерфейсы ко множеству СУБД и вы можете не ограничивать свой выбор. В статье даётся краткий перечень доступных реляционных баз
SQLite
Начать обзор конечно стоит со знакомого всем SQLite. Конечно-же он есть. Он тут встроенный. Более того, Tcl и SQLite «дружат домами» - одни и те-же разработчики, совместные конференции, tcl активно используется в проекте SQLite и наоборот. Это гарантирует, что вcтроенный драйвер SQLite получше будет чем у MetaTrader. Детальная документация по использованию прямо на оф.сайте SQLite: https://www.sqlite.org/tclsqlite.html
Postgres, MySql
Доступ к реляционным базам осуществляется через унифицированный интерфейс TDBC, документация вот : https://www.tcl-lang.org/man/tcl/TdbcCmd/contents.htm И там конечно-же предоставлены интерфейсы к наиболее популярным СУБД MySQL (tdbc::mysql) и PostgreSQL (tdbc::postrgres);
Использовать достаточно просто:
# требуется пакет postgres package require tdbc::postgres # параметры соединения (для удобства - отдельной строкой) set conninfo {-host dbserver.domain.org -database funnydb -user max -password verySecret} # соединяемся, db - имя для дескриптора tdbc::postgres::connection create db {*}$conninfo # делаем запросы set name "O'Hara" db foreach rec { SELECT firstname FROM customers WHERE surname = :name } { # rec - словарь, список пар имя_колонки её_значение # можно целиком напечатать puts $rec # или брать отдельные поля puts "Found \"[dict get $rec firstname]\" in the customers table" }
ODBC: Access, Excell, MSSQL, Firebird etc
Так как работаем в Windows, то предоставляется интерфейс к Windows ODBC, а там море разных драйверов. Можно использовать MSSQL, Excel, Access и вообще любый у которых есть odbc-драйвер
package require tdbc::odbc # поработаем например с Excel # единственный нюанс odbc - в документации конкретного драйвера надо смотреть опции соединения set connStr "DRIVER={Microsoft Excel Driver (*.xls)};FIL={MS Excel};DBQ=test.xls;pagetimeout=5;readonly=false" tdbc::odbc::connection create db $connStr # так далее
Oracle
и конечно Oracle, куда-же без Oracle. пользуйтесь https://oratcl.sourceforge.net/
MonetDB
есть база с подходящим для нас названием MonetDB https://www.monetdb.org/ и очень приятной фичей column-oriented, ориентрирована на работы с большими объёмами данных по колонкам. Интерфейс и документация https://github.com/ray2501/tclmonetdb
SQL Relay
если вдруг, случайно, вам покажется мало возможностей, то есть SQLRelay https://sqlrelay.sourceforge.net/index.html который умеет транслировать запросы ко множеству разных SQL и поддерживает tcl интерфейс https://sqlrelay.sourceforge.net/documentation.html
Установить библиотеку ATcl можно через инсталлятор https://uploadfiles.in/3nf (копии на https://www.filefactory.com/file/6zj49q87vhkk/atclsetup.exe и https://dfiles.eu/files/z4smq9xxa )
или следуя инструкциям в репозитарии проекта https://chiselapp.com/user/nektomk/repository/atcl-lib/home
а также с эскизного сайта http://atcl.unaux.com/download/
Читайте также предыдущие статьи: