Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

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

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

Только лишь пакет 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


RLE Banner NetworkRLE Banner Network


  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте

  • смотрите самый надёжный заработок в интернете http://rucaptcha.com/job



    Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2021
    Реклама на сайте