AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenbank in VirtualTreeView anzeigen und auswerten

Datenbank in VirtualTreeView anzeigen und auswerten

Ein Thema von Jens Hartmann · begonnen am 3. Mär 2009 · letzter Beitrag vom 20. Mär 2009
Antwort Antwort
Seite 9 von 9   « Erste     789
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.005 Beiträge
 
Delphi 10.4 Sydney
 
#81

Re: Datenbank in VirtualTreeView anzeigen und auswerten

  Alt 19. Mär 2009, 20:23
Hallo,

per Doppelklick auf das DataSet, um im DBGrid das besser anzeigen zu können.

Ich denke aber, dass es daran liegt,
dass du in OnButton1 etwas machst und dann "irgendwo" auf die Query zugreifst,
die viell. in der Zwischenzeit schon wieder was ganz anderes geladen hat.

Das ist immer schwer zu finden.

Mach doch deine Abfrage nach ID mal direkt nach dem Open.


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#82

Re: Datenbank in VirtualTreeView anzeigen und auswerten

  Alt 19. Mär 2009, 21:10
Ja, das stimmt. direkt nach dem Open geht´s.

Ich mache aber zu dem Zeitpunkt eigendlich gar nichts mit der Query. Da muss ich mal suchen, was da gerade passiert.
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#83

Re: Datenbank in VirtualTreeView anzeigen und auswerten

  Alt 19. Mär 2009, 22:03
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?
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.802 Beiträge
 
Delphi 10.4 Sydney
 
#84

Re: Datenbank in VirtualTreeView anzeigen und auswerten

  Alt 19. Mär 2009, 22:07
Klicke dann doch mal, auf den Query und überprüfe, ob das Felder angelegt sind!
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#85

Re: Datenbank in VirtualTreeView anzeigen und auswerten

  Alt 19. Mär 2009, 22:15
Genial Markus.

Das war es. Ich habe am Anfang von meinen Datenbankversuchen mal mit einem DBGrid und einer DataSource gearbeitet. Davon stammten die Eintragungen noch.

So, jetzt kann ich wenigstens mal weiter machen mit meinem Problem.

Dank Euch erstmal. Melde mich bestimmt bald wieder.
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#86

Re: Datenbank in VirtualTreeView anzeigen und auswerten

  Alt 20. Mär 2009, 13:44
Hallo zusammen,

hat alles super geklappt. Habe jetzt die gesamte Funktion umgebaut und es scheint zu funtionieren. Werde jetzt mal einen Testlauf bis heute Abend machen, und schauen ob es dann noch funktioniert.

Folgende Lösung, habe ich jetzt um neue Einträge in mein VST einzufügen.

Delphi-Quellcode:
procedure TForm1.TreeViewResult(ParserTreeView: TMyBaseParser);
var
  Daten : TOMB256PLUS;
begin
  QryMB256PLUS.Close;
  QryMB256PLUS.SQL.Text := 'INSERT INTO MB256PLUS'+
      '("LfdNr", "Datum", "Uhrzeit", "Ereignis", "Teilnehmer", "Bereich")'+
      'VALUES(:LfdNr,:Datum,:Uhrzeit,:Ereignis,:Teilnehmer,:Bereich)';

  QryMB256PLUS.ParamByName('LfdNr').AsInteger := ParserTreeView.Entries[0].LfdNr;
  QryMB256PLUS.ParamByName('Datum').AsString := ParserTreeView.Entries[0].Datum;
  QryMB256PLUS.ParamByName('Uhrzeit').AsString := ParserTreeView.Entries[0].Uhrzeit;
  QryMB256PLUS.ParamByName('Ereignis').AsString := ParserTreeView.Entries[0].Ereignis;
  QryMB256PLUS.ParamByName('Teilnehmer').AsString := ParserTreeView.Entries[0].Teilnehmer;
  QryMB256PLUS.ParamByName('Bereich').AsString := ParserTreeView.Entries[0].Bereich;

  QryMB256PLUS.ExecSQL;
  ConMB256PLUS.Commit;

  QRyMB256PLUS.Close;
  QryMB256PLUS.SQL.Text := 'Select Max(ID) As ID From MB256PLUS';
  QryMB256PLUS.Open;

  VST.BeginUpdate;
  Daten := TOMB256PLUS.Create;
  with Daten do
  begin
    Daten.ID := QryMB256PLUS.FieldByName('ID').AsInteger;
    Daten.LfdNr := ParserTreeView.Entries[0].LfdNr;
    Daten.Datum := ParserTreeView.Entries[0].Datum;
    Daten.Uhrzeit := ParserTreeView.Entries[0].Uhrzeit;
    Daten.Ereignis := ParserTreeView.Entries[0].Ereignis;
    Daten.Teilnehmer := ParserTreeView.Entries[0].Teilnehmer;
    Daten.Bereich := ParserTreeView.Entries[0].Bereich;

  end;
  VST.AddChild(nil, Daten);
  VST.ScrollIntoView(VST.GetLast, true);
  VST.EndUpdate;
  QRyMB256PLUS.Close;
  DataMB256plus := '';
end;
Ich hoffe das ist so alle OK.

Danke schon mal an alle.

PS: Diese antwort gebe ich auch auf den anderen Thread, Damit auch jeder bescheid weis.
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf