http://www.norma-stab.ru/catalog_product.html купить стабилизатор напряжения однофазный 12 квт.

LIBPQ - прикладной программный интерфейс POSTGRES95


LIBPQ - прикладной программный интерфейс POSTGRES95. Он представлен набором библиотечных функций (подпрограмм), которые позволяют клиентским программам посылать запросы серверу СУБД и получать от него соответствующие результаты. Для этого в прикладную программу включают главный файл библиотеки libpq-fe.h , встраивают функции LIBPQ и производят компиляцию кода программы с библиотеками POSTGRES95. Схема доступа к базам данных из внешних программ достаточно простая. С помощью специальной функции PQsetdb устанавливается TCP-соединение по определенному порту (как правило, - 5432) прикладной программы с процессом-демоном postmaster'ом. При этом функции передаются параметры значений имени базы данных, IP-адреса сервера, порта соединения. Далее при успешном соединении происходит выполнение в рамках функции PQexec SQL-операторов языка запросов POSTQUEL - открытие транзакции с базой данных, выполнение запроса и закрытие транзакции. После этого происходит завешение соединения с базой данных. При выполнении запроса по выбору данных из БД POSTGRES95 создает временную таблицу, в которую помещает полученный результат. Используя SQL-операторы, связанные с курсорами, и специальные функции LIBPQ по работе с кортежами, полями отношений, достаточно просто осуществляется доступ к элементам результирующей таблицы, что приводит к генерации произвольных отчетов по запросам пользователей. Ниже приведен фрагмент Cи-программы, реализующей запрос к базе данных "polyn":

pghost= "ns.polyn.kiae.su" pgport= "5432"; pgoptions=NULL; pgtty=NULL; dbname= "polyn" /*установка соединения с базой данных */ conn = PQsetdb(pghost, pgport, pgoptions, pgtty, dbname); /* проверка статуса выполнения соединения */ if (PQstatus(conn)== CONNECTION_BAD) { printf("connection to database '%s' failed", dbname); printf("%s", PQerrorMessage(conn)); PQfinish(conn); exit(1); } /* начало транзакции с БД*/ res=PQexec(conn,"BEGIN"); /* проверка статуса выполнения функции */ if (PQresultStatus(res)!=PGRES_COMMAND_OK) { printf("BEGIN command failed"); PQclear(res); PQfinish(conn); exit(1); } PQclear(res); /* выполнение SQL-опреатора установки курсора на результат запроса выбора поля isotop из отношения isotop */ res=PQexec(conn,"DECLARE myportal CURSOR FOR select isotop.isotop from isotop "); /* выполнение оператора чтения по курсору */ res=PQexec(conn,"FETCH ALL in myportal"); /* определение количества кортежей и атрибутов в результирующей таблице */ ntups = PQntuples(res); nflds = PQnfields(res); /* вывод имен атрибутов */ for (i=0; i


- Начало - - Назад - - Вперед -



Книжный магазин