Postgres - статьи

Замечания по Delphi


Эти два случая из моего опыта работы с PostgreSQL из Delphi.

Первую фичу я обнаружил на методе AppendRecord. Оказывается, чтобы данный метод отработал успешно, нужно первым элементом списка ставить nil, иначе, при выполнении возникнет ошибка. Т.е. теперь AppendRecord будет выглядеть, например так:

MyQuery.AppendRecord([nil, 1, 'Василий', 'Иванович', 'Чапаев']);

а не так, как делается, например, при работе с Interbase:

MyQuery.AppendRecord([1, 'Василий', 'Иванович', 'Чапаев']);

Вторая фича касается какой-то веселой ситуации, возникшей у меня один раз с сервером. По какой-то причине, тот отказывал в обслуживании клиентам. Похоже, это произошло потому, что в этот момент выполнялся какой-то процесс по обслуживанию базы данных на самом сервере.

Симптомом послужило то, что при обращении к PostgreSQL из программы на Deplhi, сама программа весилась намертво. При этом курсор принимал на экране характерную форму при выполнении SQL запроса. Однако этот запрос все продолжал выполняться и продолжал... Через 5 минут мне это надоело и я снял задачу принудительно.

Чем было вызвано зависание программы я даже не знаю. По идее должен был отработать тайм-аут по истечении которого, должна была появиться ошибка, но этого не случилось. Может виновата кривость BDE, может ODBC драйвера.

Вылечилось просто - на сервере был перезапущен PostgreSQL.



Содержание раздела