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

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

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

Стандартный Tcl не содержит средств для доступа к PostgreSQLPostgreSQL (произносится «Пост-Грес-Кью-Эл», в профессиональной среде коротко называется «постгрес»)— свободная объектно-реляционная система управления базами данных (СУБД)., но поскольку этот язык выполнен так, что может расширять свои возможности через подружаемые библиотеки, то наличие библиотеки 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. Команда, которая будет выполняться для каждой полученной записи из набора данных

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

В данном примере, несмотря на простоту присутствуют все вышеописанные операторыОператор (позднелат.operator— работник, исполнитель, от operor— работаю, действую)— то же, что отображение в математике.:

#!/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 "SELECTSELECT ("селект") — оператор DML языка SQL, возвращающий набор данных (выборку) из базы данных, удовлетворяющих заданному условию. * 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

Мы рекомендуем еще посмотреть:

Мероприятия компанииЮридическое лицо— созданная и зарегистрированная в установленном законом порядке организация, которая имеет в собственности, хозяйственном ведении или оперативном управлении обособленное имущество и отвечает по своим обязательствам этим имуществом, может от своего имени приобретать и осуществлять имущественные и личные неимущественные права, нести обязанности, быть истцом и ответчиком в суде. Юридические лица должны иметь самостоятельный баланс или смету..
 за 

СписокСписок— письменный перечень, число, состав; документ, содержащий перечень каких-либо сведений; в переносном смысле— буквальное, точное воспроизведение, копия; рукописная копия древнего памятника письменности. мероприятий за 1 июля 2009 г.
  МероприятиеДата проведенияНаправление
  Семинары
 Cовместный семинарСеминар (лат.seminarium — буквально:"рассадник", "теплица") — форма учебно-практических занятий, при которой учащиеся (студенты, стажёры) обсуждают сообщения, доклады и рефераты, выполненные ими по результатам учебных или научных исследований под руководством преподавателя. Преподаватель в этом случае является координатором обсуждений темы семинара, подготовка к которому является обязательной. Поэтому тема семинара и основные источники обсуждения предъявляются до обсуждения для детального ознакомления, изучения. Цели обсуждений направлены на формирование навыков профессиональной полемики и закрепление обсуждаемого материала. Семинары — эффективная форма подготовки инженерных и научно-педагогических кадров в вузах. компаний s-networks и Cisco для партнеров Северо-Западного региона01 июля 2009 г.Оборудование Cisco

Компании Cisco и s-networks организуют семинар для партнеров Северо-Западного региона.

Место проведения: Город Санкт-Петербург, отель "Достоевский", зал "Толстой"+"Пушкин" (5 этаж).

Адрес: Владимирский проспект, 19.

Авторизация
Логин
Пароль
Регистрация >
  Мероприятия « 2009 »   
« июль » 
Пн   6132027
Вт   7142128
Ср  18152229
Чт  29162330
Пт  310172431
Сб  4111825 
Вс  5121926 
Ближайший учебный курс ND 3321 СКС SYSTIMAX пройдёт c 18 по 21 августа 2009 г.
Подать заявку
2009 IT и оборудование для бизнеса, S-NETWORKS. Информационные технологии и Информационное оборудование