Tcl

Tk

Tcl/Tk

Статьи

SQLite функции на TCL

Единая страна

SQLite функции на TCL

SQLite функции на TCL - doro.poltava.ua

SQLite функции на TCL

Думаю, всем известна библиотека SQLite, предназначенная для организации хранения данных с поддержкой SQL-синтаксиса операций по манипулированию хранимыми данными.
Эта библиотека является, практически, стандартом по хранению внешних данных для тысяч приложений, в особенности для встраиваемых устройств.

Я часто в поле таблицы базы данных храню данные описанные как tcl-список. Особенно в случаях, частого изменения структуры списка в результате развития программы. Это удобнее чем расширение полей таблицы базы данных.

Но, для выполнения операций поиска, сравнения, модификации ... данного поля, представленного как tcl-список, удобно иметь набор встроеных SQLite-фуекций.
Этим мы сейчас и займёмся.

# Загружаем sqlite библиотеку
package require sqlite

# Создаём файл базы данных под именем test.db
sqlite3 db test.db

# Создаём таблицу базы данных под именем tbl
db eval "create table tbl (a text)"

# Наполняем таблицу тестовыми данными
db eval "insert into tbl values('0 1 2 3 4 5 6 7 8 9')"
db eval "insert into tbl values('q w e r t y u i o p')"

# Создаём tcl-процедуру, по извлечению любого элемента списка с любого поля любой таблицы БД
proc sqlite:lindex { args } { 
  return [eval lindex $args] 
}

# Определяем tcl-процедуру как функцию SQLite
dbcmd function lindex sqlite:lindex

# Извлекаем четвёртый элемент списка в SQL-запросе
db eval "select lindex(a,4) from tbl"
Результат:
row1> 4
row2> t

# Извлекаем из таблицы строку, со значением 't' в четвёртом элементе списка
db eval "select * from tbl where lindex(a,4) = 't'"
Результат:
row1> q w e r t y u i o p



Главная
Программные продукты
Freesource программные продукты
Статьи
Контакт
GPSMTA - GPS трекер / GPS мониторинг для Android
GPSM - программно-аппаратный комплекс GPS мониторинга
MapTour - GPS навигация для Туристов
MapSurfing - просмотрщик географических карт
DGraf - визуализация графов
ViCer - домашняя система видеонаблюдения
FPS - бесплатная система GPS мониторинга
Jeans - Финансово-складской учёт
Cerber - Финансовый учёт игорного зала
Visimap - Визуальная карта
BIB - Картотека книг
2DO - Учёт рабочего времени
Выписка - склад
Расчёт зарплаты
Krp - визуализатор связанных структур
Xboat - проэктировщик малых судов
XSQLite - visualisator DB SQLite
Текстовый редактор XEdJ
Copyright © Эдуард Зозуля
Проверка PR и ТИЦ