Можно ли выполнить sql-запросы из бэкэнд-файлов ns2?
или это возможно в tcl?
Конечно, вы можете выполнять SQL-запросы из Tcl. Детали того, как вам рекомендуется это делать, зависят от базы данных, к которой вы пытаетесь получить доступ, и от версии Tcl, которую вы используете.
С Tcl 8.6 рекомендуется использовать TDBC; Есть драйверы TDBC для ряда баз данных (SQLite, PostgreSQL, MySQL), а также для ODBC, который позволяет получить доступ ко многим другим механизмам баз данных. Полные дистрибутивы Tcl 8.6 также поставляются с самим SQLite.
В Tcl 8.5 и более ранних версиях существуют пакеты расширений для многих баз данных, так что я не буду их перечислять. Если бы мы знали, какую базу данных вы хотели бы использовать, мы бы указали вам именно тот код, который вам нужен.
Во всех случаях ваш код будет делать что-то вроде этого:
# Optionally, if needed...
lappend auto_path /the/location/of/the/extension/packages
# Make the code of the package available to your code
package require theDatabaseInterface
# The syntax of this will vary a lot...
theDatabaseInterface connect dbhandle "dbproto://user:pass@host/thedb"dbhandle query {
SELECT ...
}
Думать о package require
как более высокий уровень source
а также load
, так что вам не нужно знать о том, как реализован пакет или где он на самом деле находится. Он также поддерживает управление версиями, поэтому вы можете установить несколько версий. Это делает управление обновлениями намного проще.
Других решений пока нет …