Що для цього необхідно?

Тільки лише пакет libpgtcl, який містить необхідну бібліотеку
libpgtcl.so.

Стандартний Tcl не містить засобів для доступу до PostgreSQL, але оскільки
цю мову виконаний так, що може розширювати свої можливості через подружаемие
бібліотеки, то наявність бібліотеки libpgtcl.so – це все що потрібно.

Наданий сервіс


Незважаючи на те, що весь набір операторів зводиться до pg_connect, pg_exec,
pg_select і pg_disconnect – це все що потрібно.


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

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*