Восстановить соединение с БД PostgreSQL (Lazarus)

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Восстановить соединение с БД PostgreSQL (Lazarus)

Сообщение san7667 » 08.08.2023 07:54:25

Добрый день!
Подскажите пожалуйста, каким образом (возможно ли вообще) восстановить соединение после обрыва связи с базой
пытаюсь банально отключить и включить компонент - PQConnection1
PQConnection1.Connected:=False;
PQConnection1.Connected:=True;

Но это не работает (ошибка на скриншоте)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
san7667
новенький
 
Сообщения: 42
Зарегистрирован: 18.06.2023 17:57:37

Re: Восстановить соединение с БД PostgreSQL (Lazarus)

Сообщение sts » 08.08.2023 15:04:09

исходники не смотрел
сходу возникает подозрение что указанный код вызывается не в том месте, например в какомнибудь OnError а надо за его пределами
sts
постоялец
 
Сообщения: 415
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Re: Восстановить соединение с БД PostgreSQL (Lazarus)

Сообщение san7667 » 10.08.2023 14:30:18

sts писал(а):исходники не смотрел
сходу возникает подозрение что указанный код вызывается не в том месте, например в какомнибудь OnError а надо за его пределами

Отключаю принудительно транзакцию, иду в прогу, вызываю процедурку connectDB, типа заново подключиться и хренасдва...

procedure TForm1.ConnectDB;
begin
TRY
if dmbase.PQConnection1.Connected=True then dmbase.PQConnection1.Connected:=False;
dmbase.PQConnection1.HostName:='192.168.3.18';
dmbase.PQConnection1.UserName:='postgres';
dmbase.PQConnection1.Password:='masterkey';
dmbase.PQConnection1.DatabaseName:='phone';
dmbase.PQConnection1.Transaction:=dmbase.SQLTransaction1;
dmbase.SQLTransaction1.DataBase:=dmbase.PQConnection1;
dmbase.PQConnection1.Connected:=True;
dmbase.SQLTransaction1.Active:=True;
EXCEPT
on E:EPQDatabaseError do
begin
ShowMessage(E.Message+#13+E.SQLSTATE);
end;
END;
end;
У вас нет необходимых прав для просмотра вложений в этом сообщении.
san7667
новенький
 
Сообщения: 42
Зарегистрирован: 18.06.2023 17:57:37

Re: Восстановить соединение с БД PostgreSQL (Lazarus)

Сообщение delphius » 10.08.2023 19:40:21

san7667 писал(а):типа заново подключиться и хренасдва

Все предыдущие транзакции, запросы и датасеты, связанные с соединением закрыты?
delphius
постоялец
 
Сообщения: 122
Зарегистрирован: 18.03.2020 13:40:11


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 83

Рейтинг@Mail.ru