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

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

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

Ответить
san7667
новенький
Сообщения: 42
Зарегистрирован: 18.06.2023 16:57:37

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

Сообщение san7667 »

Добрый день!
Подскажите пожалуйста, каким образом (возможно ли вообще) восстановить соединение после обрыва связи с базой
пытаюсь банально отключить и включить компонент - PQConnection1
PQConnection1.Connected:=False;
PQConnection1.Connected:=True;
Но это не работает (ошибка на скриншоте)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
sts
энтузиаст
Сообщения: 529
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Сообщение sts »

исходники не смотрел
сходу возникает подозрение что указанный код вызывается не в том месте, например в какомнибудь OnError а надо за его пределами
san7667
новенький
Сообщения: 42
Зарегистрирован: 18.06.2023 16:57:37

Сообщение san7667 »

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;
У вас нет необходимых прав для просмотра вложений в этом сообщении.
delphius
постоялец
Сообщения: 131
Зарегистрирован: 18.03.2020 12:40:11

Сообщение delphius »

san7667 писал(а):типа заново подключиться и хренасдва
Все предыдущие транзакции, запросы и датасеты, связанные с соединением закрыты?
Ответить