![]() |
Re: Datenbank in VirtualTreeView anzeigen und auswerten
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe die DLL schon direkt mit DW geladen. Die gleiche Fehlermeldung wie bei der EXE
|
Re: Datenbank in VirtualTreeView anzeigen und auswerten
@Hansa: Mensch - mußt Du gleich wieder der Keule kommen....
Hansa ist nicht verkehrt, er weiss einiges, gerade über Firebird und ich weiss noch wie er mich mit einem Paukenschlag in meinem 1.Post in der DP begrüßt hat :mrgreen:. Aber um das Ganze mal wieder etwas aufzulösen. Dieser Firebird-Installationskrempel gehört nun wirklich nicht unter die Überschrift. @Jens mach doch mal mit der Geschichte in Deinem ![]() Neige dazu Dir das ADO-Beispiel aus dem Datenbankthread an den Compiler zu legen und Dich hier auf die Ansteuerung des Virtual-Tree-View zu konzentrieren. Da gibt es noch Tücken genug. Viele Grüße in die Runde ! Martin |
Re: Datenbank in VirtualTreeView anzeigen und auswerten
Da gebe ich Dir recht. Leider ist es ja so, das das eine irgendwie auf dem anderen aufbaut.
Ich habe mich ja intensiv mit dem VST beschäftigt und will halt jetzt an die DB-Anbindung. Und dabei, ist ja der Fehler aufgetaucht. Aber trotzdem Danke für den Tip. Vieleicht sollte ich einfach einen neuen Thread aufmachen. Das Problem ist nur, das ich schon nicht mal mehr weiß, wie ich den überhaupt nennen könnte. Es ist eben auch nicht gegen Hansa gewesen. Nur ist es halt als Anfänger schwer, wenn man teilweise die Begriffe und Hintergründe nicht kennt, sich darein zu arbeiten. Auch das googeln ist dann nicht so einfach, wenn man nicht genau weiß wonach man eigentlich sucht. |
Re: Datenbank in VirtualTreeView anzeigen und auswerten
Jens nimm Dir doch das Datenbankbeispiel aus dem anderen Thread und bau mal den VT ein. Morgen bin ich auf der CeBit aber am Freitag würde ich Dir dann aus dem Access VT Beispiel aind FB VT Beispiel bauen. Das mach ich nicht ohne Eigensinn. Mit dem VT habe ich bisher kaum gearbeitet und Du leistet da gerade Forschungsarbeit in meinem Sinne :mrgreen:
Grüße // Martin PS: ![]() |
Re: Datenbank in VirtualTreeView anzeigen und auswerten
Ich habe doch noch ein wenig getestet. Ich habe die Datenbank auch noch in einem anderen Ordner in einem anderen Programm. Auch da habe ich ja eine TZCon und TZQRY. Nur mit dem unterschied, das ich dort über eine DataSource ein DBGrid fülle.
Jetzt habe ich mal in beiden Anwendungen versucht, die Datenbankverbindung im Designmodus zu öffnen. In der mit dem DBGrid geht es und in der anderen, kommt dann schon der Fehler das die dll fehlt. Und nach langem genauem hinsehen, habe ich den Fehler dann doch noch gefunden. Es läuft. Und zwar, stand das Protokoll der TZConnection nicht auf Firebird2.0 sondern auf Firebirdd2.0. Wo ist denn da eigendlich der Unterschied. Jetzt geht alles, sogar meine Anbindung an mein VST. Yes (Eigeninitiative) :thumb: Sorry Hansa, das musste jetzt sein, ist aber nicht persönlich gemeint. Gruß und Dank an alle Jens PS: Besonderen Dank an Markus und Martin |
Re: Datenbank in VirtualTreeView anzeigen und auswerten
Übrigens,
werden die anderen dll´s auch benötigt. Nachdem ich die eingefügt hatte, muss ich mir irgendwie ausversehen, die Einstellungen vom Protokoll Firebird 2.0 auf Firebirdd 2.0 umgestellt haben. So kann es gehen. Fehler der dll´s behoben und in der Zwischenzeit einen neuen eingebaut. Naja, dies nur noch am Rande zur Information. Aber vielleicht, kann mir ja jemand mal den Unterschied der beiden Protokolle erleutern. |
Re: Datenbank in VirtualTreeView anzeigen und auswerten
Zitat:
![]() alex |
Re: Datenbank in VirtualTreeView anzeigen und auswerten
Ah, danke schön, also wird das Protokoll
Embedded : use the firebirdd-2.0 protocol. von Lazarus verwendet |
Re: Datenbank in VirtualTreeView anzeigen und auswerten
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo nochmal zusammen.
Habe die ganze Anbindung jetzt am laufen, und wollte jetzt noch das befüllen von einem Record, auf ein Objekt (class) ändern. Habe das auch soweit alles angepaßt, habe allerdings jetzt beim kompelieren eine Fehlermeldung (siehe Anhang) Leider, kann ich den Grund dafür nicht finden. Delphi bring auch sonst keine Meldung wie man das so kennt. z.B. ; erwartet oder so;;;; Hier der gesamte Quellcode, was das VST angeht inkl. der Objekt Impelmentation...
Delphi-Quellcode:
{Mein Objekt}
type TOMB256PLUS = class public ID : integer; LfdNr : integer; Datum : String; Uhrzeit : String; Ereignis : String; Teilnehmer : String; Bereich : String; SysData : String; end; {Meine Datenbank / VST Anbindung} {******************************************************************************} { } { VST Zeilen farblich darstellen } { } {******************************************************************************} procedure TForm1.VSTAfterItemErase(Sender: TBaseVirtualTree; TargetCanvas: TCanvas; Node: PVirtualNode; ItemRect: TRect); var Daten : TOMB256PLUS; begin Daten := TOMB256PLUS.Create; Daten := TOMB256PLUS(VST.GetNodeData(Node)^); if Sender.Selected[Node] then Exit; Daten := (VST.GetNodeData(Node)); if Pos('Extern',Daten.Ereignis) > 0 then TargetCanvas.Brush.Color := clAqua; if Pos('Unscharf',Daten.Ereignis) > 0 then TargetCanvas.Brush.Color := clSkyBlue; if Pos('Störung',Daten.Ereignis) > 0 then begin if Pos('EIN', Daten.Ereignis) > 0 then TargetCanvas.Brush.Color := clYellow; end; if Pos('Alarm',Daten.Ereignis) > 0 then begin if Pos('EIN', Daten.Ereignis) > 0 then TargetCanvas.Brush.Color := clRed; end; if Pos('Hauptalarm',Daten.Ereignis) > 0 then begin if Pos('EIN', Daten.Ereignis) > 0 then TargetCanvas.Brush.Color := clRed; end; if Pos('Überfall',Daten.Ereignis) > 0 then begin if Pos('EIN', Daten.Ereignis) > 0 then TargetCanvas.Brush.Color := clRed; end; if Pos('Einbruch',Daten.Ereignis) > 0 then begin if Pos('EIN', Daten.Ereignis) > 0 then TargetCanvas.Brush.Color := clRed; end; if Pos('Sabotage',Daten.Ereignis) > 0 then begin if Pos('EIN', Daten.Ereignis) > 0 then TargetCanvas.Brush.Color := clRed; end; if Pos('Voralarm',Daten.Ereignis) > 0 then begin if Pos('EIN', Daten.Ereignis) > 0 then TargetCanvas.Brush.Color := clRed; end; TargetCanvas.FillRect (ItemRect); end; procedure TForm1.VSTFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode); var Daten : TOMB256PLUS; begin Daten := TOMB256PLUS(VST.GetNodeData(Node)^); Daten.Free; end; procedure TForm1.VSTfüllen; begin if not QRYMB256PLUS.Active then QRYMB256PLUS.Open; QRYMB256PLUS.filtered := false; QRYMB256PLUS.filter := ''; VST.BeginUpdate; VST.Clear; VST.NodeDataSize := Sizeof(TOMB256PLUS); QRYMB256PLUS.First; VST.RootNodeCount := QRYMB256PLUS.RecordCount; VST.SortTree(0,sdAscending,true); VST.EndUpdate; end; {VST Initialisieren mit den Daten aus der Datenbank} procedure TForm1.VSTInitNode(Sender: TBaseVirtualTree; ParentNode, Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates); var Daten : TOMB256PLUS; begin Daten := TOMB256PLUS.Create; VST.NodeHeight[Node] := 35; Include(InitialStates, ivsMultiline); Initialize(Daten); Daten.ID := QRYMB256PLUS.FieldByName('ID').AsInteger; Daten.LfdNr := QRYMB256PLUS.FieldByName('LfdNr').AsInteger; Daten.Datum := QRYMB256PLUS.FieldByName('Datum').AsString; Daten.Uhrzeit := QRYMB256PLUS.FieldByName('Uhrzeit').AsString; Daten.Ereignis := QRYMB256PLUS.FieldByName('Ereignis').AsString; Daten.Teilnehmer := QRYMB256PLUS.FieldByName('Teilnehmer').AsString; Daten.Bereich := QRYMB256PLUS.FieldByName('Bereich').AsString; if not QRYMB256PLUS.eof then QRYMB256PLUS.Next; end; {Größe vom Objekt dem VST zuweisen} procedure TForm1.VSTGetNodeDataSize(Sender: TBaseVirtualTree; var NodeDataSize: Integer); begin VST.NodeDataSize := SizeOf(TOMB256PLUS); end; {Werte dem VST zuweisen} procedure TForm1.VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString); var Daten : TOMB256PLUS; begin Daten := TOMB256PLUS.Create; Daten := TOMB256PLUS(VST.GetNodeData(Node)^); case Column of 0: CellText:= IntToStr(Daten.ID); 1: CellText:= IntToStr(Daten.LfdNr); 2: CellText:= Daten.Datum; 3: CellText:= Daten.Uhrzeit; 4: CellText:= Daten.Ereignis; 5: CellText:= Daten.Teilnehmer; 6: CellText:= Daten.Bereich; end; end; |
Re: Datenbank in VirtualTreeView anzeigen und auswerten
Habe den ganzen Abend noch an meinem Fehler gesucht, nur leider ohne Ergebnis.
Das Einzige, wo ich vermute, wo das her kommt liegt bei dem Event GetOnText. Kommentiere ich diesen Teil aus, Läuft mein Programm.
Delphi-Quellcode:
Irgenjemand da vieleicht noch eine Idee
var
Daten : TOMB256PLUS; begin Daten := TOMB256PLUS.Create; Daten := TOMB256PLUS(VST.GetNodeData(Node)^); case Column of 0: CellText:= IntToStr(Daten.ID); 1: CellText:= IntToStr(Daten.LfdNr); 2: CellText:= Daten.Datum; 3: CellText:= Daten.Uhrzeit; 4: CellText:= Daten.Ereignis; 5: CellText:= Daten.Teilnehmer; 6: CellText:= Daten.Bereich; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:32 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz