WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Архив » Доступ к PostgreSQL из программ на языке Tcl

Доступ к PostgreSQL из программ на языке Tcl


Дата публикации: 25-03-2013

Что для этого необходимо?

Только лишь пакет libpgtcl, который содержит необходимую библиотеку libpgtcl.so.

Стандартный Tcl не содержит средств для доступа к PostgreSQL, но поскольку этот язык выполнен так, что может расширять свои возможности через подружаемые библиотеки, то наличие библиотеки libpgtcl.so - это все что нужно.

 

Предоставляемый сервис

Несмотря на то, что весь набор операторов сводится к pg_connect, pg_exec, pg_select и pg_disconnect - это все что нужно.

  • pg_connect - обеспечивает подключеник заданной базе данных
  • pg_disconnect - обеспечивает отключение от базы данных
  • pg_exec - предназначен для тех операторов SQL, которые не возвращают информацию
  • pg_select - предназначен для тех операторов SQL, которые возвращают набор данных

pg_connect

Оператор имеет одну опцию: -conninfo, однако именно в этой опции, указываются все необходимые для подключения параметры, такие как host - машина, где работает сервер PostgreSQL, dbname - имя базы данных, к которой мы хотим подключиться, user - имя пользователя, с правами которого мы хотим осуществить подключение и password - его пароль.

Оператор возвращает значени уникального декскриптора базы, который затем используется всеми другими операторами, в случае успешного подключения. В случае неудачи, срабатывает исключение, которое можно обработать командой Tcl catch.


pg_disconnect

Все назначение оператора pg_disconnect состоит в закрытии сеанса соединения с базой данных. Для этого оператору нужен только один параметр - уникальный дискриптор, полученный в результате выполнения pg_connect.


pg_exec

Этот оператор необходим для выполнения таких операторов языка SQL, как INSERT, UPDATE, DELETE и т.д, словом всех операторов SQL, в результате выполнения которых не возвращается информация.

Для этого необходимы два параметра: уникальный декскриптор, полученный через pg_connect и строка, в которой записан оператор SQL.


pg_select

Само название оператора предполагает, что он будет использоваться при выполнении запросов к базе данных с использованием оператора SELECT.

Оператор имеет четыре параметра:

  1. Уникальный дескриптор, полученный через pg_connect
  2. Строка, в которой расположен текст запроса на языке SQL
  3. Имя переменной, которая будет играть роль массива-приемника информации
  4. Команда, которая будет выполняться для каждой полученной записи из набора данных

Простой пример

В данном примере, несмотря на простоту присутствуют все вышеописанные операторы:

#!/bin/sh 
# \ 
exec tclsh "$0" "$@" 
# подгружаем библиотеку 
load libpgtcl.so 
# подготавливаем параметры для соединения 
set host "server" 
set dbname "traffic" 
set user "victor" 
set password "orel1" 
# пытаемся подключиться к базе данных 
set result [catch {set dbc [pg_connect -conninfo "host=$host dbname=$dbname user=$user password=$password"]}] 
# если result не ноль, то выдаем ошибку 
if {$result} { 
  puts "Не удалось подключиться к базе данных. Проверьте параметры соединения" 
  exit 
} 
# в противном случае, соединение удалось, а в переменной dbc находится 
# уникальный дескриптор 
# делаем запрос к базе данных на получение всей информации из таблицы clients_tbl 
# при этом, названия полей (name, money, rang) выступают в виде индексов  
# ассоциативного массива с именем answer 
pg_select $dbc "SELECT * FROM clients_tbl" answer { 
  puts "Клиент: $answer(name)" 
  puts "Имеет денег: $answer(money)" 
  puts "Его ранг: $answer(rang)" 
} 
# удаляем из таблицы всех клиентов, у которых денег меньше чем 1000 
# Поскольку информация не возвращается, воспользуемя оператором pg_exec 
pg_exec $dbc "DELETE FROM clients_tbl WHERE money<1000" 
# Закрываем соединение с базой данных 
pg_disconnect $dbc 

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)
Ноябрь 2015 (1)
Октябрь 2015 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта

Хотите продать свой сайт?
- Мы быстро и удобно для Вас сможем его купить:
  • Заявка на продажу сайта
  • Раcсматриваем цены на каждый сайт в индивидуальном порядке.

    Случайная цитата

    Alan J. Perlis:

    "Низкоуровневый язык — это когда требуется внимание к вещам, которые никак не связаны с программами на этом языке."

    Опрос

    Какой аудио плеер Вы используете?

    Winamp
    Light Alloy
    foobar2000
    Apollo
    AIMP
    1by1
    iTunes
    jetAudio
    Другой...