Что нового

Как соединиться с базой PostgreSQL на локальном компьютере?

QQruza

Новичок
Сообщения
26
Репутация
0
Прошу пример скрипта, для соединения с базой PostgreSQL и пример одного, двух запросов, создание таблицы и извлечение записи из таблицы.
Спасибо.
 

XpycT

Скриптер
Сообщения
380
Репутация
133
Для работы скрипта необходимо установить psqlODBC.

Код:
#include <Array.au3>

Global $sServer   = "" ; Сервер PostgreSQL
Global $sUserName = "" ; Имя пользователя
Global $sPassword = "" ; Пароль
Global $sDatabase = "" ; База Даннык, к которой подключаемся

$oPgSQLConn = ObjCreate("ADODB.Connection")
$sPgSQLConnStr = "DRIVER={PostgreSQL Unicode};SERVER=" & $sServer & ";PORT=5432;DATABASE=" & $sDatabase & ";UID=" & $sUserName & ";PWD=" & $sPassword
$oPgSQLConn.Open($sPgSQLConnStr)

; Создаем Таблицу
$sQuery = "CREATE TABLE public.table_test (test_date date NOT NULL, test_number smallint);"
$oPgSQLConn.Execute($sQuery)

; Заполняем Таблицу
$sTestDate = @YEAR & "-" & @MON & "-" & @MDAY
$sTestNumber = Random(1, 100, 1)

$sQuery = "INSERT INTO public.table_test VALUES (" & $sTestDate & ", " & $sTestNumber & ");"
$oPgSQLConn.Execute($sQuery)

; Получаем данные из таблицы
$sQuery = "SELECT * FROM public.table_test;"
$aDataFromTable = $oPgSQLConn.Execute($sQuery).GetRows()
_ArrayDisplay($aDataFromTable)

; Удаляем Таблицу
$sQuery = "DROP TABLE public.table_test;"
$oPgSQLConn.Execute($sQuery)

$oPgSQLConn.Close

Скрипт писался без проверки (нет под рукой PostgreSQL)
 
Автор
Q

QQruza

Новичок
Сообщения
26
Репутация
0
Правильно
Код:
$sQuery = "INSERT INTO public.table_test VALUES ('" & $sTestDate & "', " & $sTestNumber & ");"
 
Автор
Q

QQruza

Новичок
Сообщения
26
Репутация
0
Код:
; Получаем данные из таблицы
$sQuery = "SELECT * FROM public.table_test WHERE test_number = 1234;"
$aDataFromTable = $oPgSQLConn.Execute($sQuery).GetRows()
_ArrayDisplay($aDataFromTable)


Если test_number = 1234 в таблице нет и запрос вернул ноль строк, то

Код:
D:\script.au3 (21) : ==> The requested action with this object has failed.:
$aDataFromTable = $oPgSQLConn.Execute($sQuery).GetRows()
$aDataFromTable = $oPgSQLConn.Execute($sQuery).GetRows()^ ERROR

и скрипт останавливается по этой ошибке.

Как сделать, чтобы скрипт по ошибке не вылетал и был получен результат, что строк = 0, или формировался пустой массив?
 
Верх