So, ich habe das jetzt mal geprüft. Im
OI ist die
Query nicht Connect und auch nicht Open.
Im FormCreate greife ich auch noch nicht drauf zu. Im FormActivate starte ch dann die Funktion VSTFuellen, in der ich das erste mal auf die
Query zugreife.
Delphi-Quellcode:
procedure TForm1.VSTFuellen;
var
Daten : TOMB256PLUS;
Count : Integer;
iError : Integer;
sMessage :
String;
begin
if ServiceGetStatus('
', '
FirebirdGuardianDefaultInstance') = 4
then
begin
QryMB256PLUS.SQL.Clear;
QryMB256PLUS.SQL.Text := '
SELECT ID FROM MB256PLUS';
//Selbst hier kommt schon der Fehler
if not QryMB256PLUS.Active
then begin
iError := 0;
Repeat
Try
QryMB256PLUS.Open;
Except
on e :
Exception Do begin
sMessage := e.
Message;
Inc(iError);
Application.ProcessMessages;
Sleep(1000);
end;
end;
until QryMB256PLUS.Active
or (iError > 5);
// <- bitte ausprobieren, ob 5 reicht oder eventuell höher sein muss.
if iError > 5
then begin
ShowMessage('
Die Datenbank konnte mit ' + IntToStr(iError) + '
Versuchen nicht geöffnet werden.'
+ #13 + '
Die letzte Fehlermeldung lautete: ' + sMessage);
Application.Terminate;
// <- oder sonstige Fehlerbehandlung.
end;
end;
VST.BeginUpdate;
VST.Clear;
QryMB256PLUS.First;
....
Um auf das DataSet mal zurückzukommen. Ich habe gar keine Komponente, die dies zur Verfügung stellt. Da ich nicht mit einem DBGrid sondern mit dem VirtualStringTree arbeite, brauche ich der doch keine, Oder?