powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Просвятите насчет Tcl
3 сообщений из 3, страница 1 из 1
Просвятите насчет Tcl
    #33513275
Opilki_Inside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что за язык такой Tcl? Интерпритатор/компилятор? Какие приемущества по сравнению с plpg/sql ? Стоит ли вобще на нем писать хранимки?
...
Рейтинг: 0 / 0
Просвятите насчет Tcl
    #33513309
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на нем можно создавать (и получать) свои переменные сеанса. Глубже не лез. А переменные пользуем.
...
Рейтинг: 0 / 0
Просвятите насчет Tcl
    #33527690
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Удобно на tcl писать процедуры с использованием сохраненных планов запросов, формируемых динамически. Например, есть словарь с описанием неких сущностей, которые хранятся в разных таблицах. На tcl пишем процедуру выборки собственно сущностей по их типу и коду:

create or replace function GetOneTSName(integer, integer) returns varchar as '
global GD
# как параметры приходят тип источника и код
if {![ info exists GD(GetTSStatement$1) ]} then {
# построение оператора выборки имени источника текущего типа
set ststatement " "
spi_exec "select coalesce(''select '' || fn_description || '' as a_describe from '' || rtrim(tablename, '' '') || '' where id = \$'' || ''1'', ''select '''''' || name || '''''' as a_describe'')::varchar as ststatement from transaction_sources where tscode = $1"
# исполнение оператора (если он есть) подготовки к выборке имени источника текущего типа и запоминание идентификатора
if {$ststatement == " "} then {
# тип источника не описан
set GD(GetTSStatement$1) " "
} else {
set GD(GetTSStatement$1) [spi_prepare ${ststatement} int4]
}
}
# по умолчанию имя - пустая строка
set a_describe " "
if {$GD(GetTSStatement$1) != " "} then {
# исполнение подготовленного оператора выборки
spi_execp $GD(GetTSStatement$1) $2
}
return $a_describe
' language 'pltcl';
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Просвятите насчет Tcl
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]