Для работы скрипта необходимо установить psqlODBC.
Код:
#include <Array.au3>Global$sServer=""; Сервер PostgreSQLGlobal$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)
; Получаем данные из таблицы$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, или формировался пустой массив?