Hab leider ein kleines Problem:
Firebird 1.5...läuft
Verbindung zu Server...steht
lesen/schreiben...geht
Verbindung unterbrochen...
hier hakts noch
Hab den Beispielcode von FibPlus (connectionlost) ausprobiert und der geht auch.
Aber: hab viele Abfragen, wo ich auch sortiere. Da kommt es zu Fehlern, da im worst case gerade beim Starten des sortierens die Verbindung weg sein kann. Die DataSet wird ja geschlossen für die Abfrage (
SQL ändern). Und beim öffnen crasht's dann, und mein Grid ist leer. Wie kann ich das am günstigsten umgehen?
vielleicht noch wissenswert: OnDatabaseLostConnect -> Actions := laWaitRestore
Delphi-Quellcode:
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var
SelectSQL:
String;
Flags: DWORD;
begin
//Netwerkkabel drinnen?
if IsNetworkAlive(Flags)
then //importiert aus sensapi.dll
begin
//DB da?
if not DataBase.Connected
then
try
DataBase.Connected:=true
except
exit
end;
//wenn ja
if Database.Connected
then
begin
SelectSQL := '
select * from "GENRE" order by ';
//falls Grid doch leer und kein Titel
if Column.Title.Caption <> '
'
then
SelectSQL := SelectSQL + Column.Title.Caption
else
SelectSQL := SelectSQL + '
ID';
//Auf-/Absteigend sortieren
if sortasc
then
SelectSQL := SelectSQL + '
ASC'
else
SelectSQL := SelectSQL + '
DESC';
sortasc :=
not sortasc;
//SQL ändern und Abfrage ausführen
CompaniesDataSet.Close;
CompaniesDataset.SelectSQL.Clear;
CompaniesDataset.SelectSQL.Add(SelectSQL);
CompaniesDataSet.Open;
end;
//Database.connected
end
else
ShowMessage('
No Connection');
end;
Danke