AGB  ·  Datenschutz  ·  Impressum  







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

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 7 von 9   « Erste     567 89      
Benutzerbild von Jens Hartmann
Jens Hartmann

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

Re: Datenbank in VirtualTreeView anzeigen und auswerten

  Alt 15. Mär 2009, 19:38
Push
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
hoika

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

Re: Datenbank in VirtualTreeView anzeigen und auswerten

  Alt 17. Mär 2009, 12:05
Hallo,

wie sieht denn dein OnGetText jetzt aus ?
Hoffentlich nur so was wie


Delphi-Quellcode:
var
  Daten : TOMB256PLUS;
begin
  Daten := TOMB256PLUS(VST.GetNodeData(Node)^);
ohne das .Create


Zum zumüllen:
- Task-Manager benutzen
- MemCheck benutzen


Ausserdem habe ich gesehen, verwendest du RecordCount und Last, das ist schlecht,
wozu brauchst du das Count ?
Besser wäre es, es selber zu zählen.

RecordCount:
============
Select * from Tabelle und alle Datensätze übers Netz ziehen
und dabei laaaangsam zählen
-> durch Select Count(*) ersetzen

Last
====:
Ähnlich wie RecordCount


was benutzt du zum Zugriff auf Firebird ?
-> SQL-Monitor benutzen


Update
======
Jetzt habe ich mir mal die vorige eite angesehen.
Du bekommst über Generator/Trigger eine neue ID
und benutzt Select * -> Last, um an die Id ranzukommen.

Ist "Suboptimal".

Wenn du wirklich der einzige bist, der in die DB schreibt,
reicht ein Select Max(Id) As ID_Max From TableX

Das erneute Auslesne der Daten ist nicht nötig,
die hast du (abgesehen von der ID) ja gerade eingetragen.


Bist du nicht der einzige, holst du dir per select Gen_Id(Generator_Variable,1)
den nächstgößten ID-wert (der Generator wird hier auch gleichzeitg mit erhöht)
und trägst den Datensatz incl. der ID ein.


Heiko






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
 
#63

Re: Datenbank in VirtualTreeView anzeigen und auswerten

  Alt 18. Mär 2009, 18:16
Hallo Heiko,

Danke erstmal für die vielen Bemühungen. Habe alles so weit verstanden. In der Get Text ist natürlich kein Create mehr.

Allerdings, habe ich das mit der Selekt Funktion jetzt mal versucht, allerdings mit dem Fehler, das das Feld ID nicht bekannt ist.

Select Max(Id) From MB256PLUS Die selbe Meldung, kommt bei deiner Variante

Select Max(Id) As ID_Max From TableX Das Feld existiert aber und ist ein Generator.

Irgendeine Idee

Gruß

Jens
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.851 Beiträge
 
Delphi 11 Alexandria
 
#64

Re: Datenbank in VirtualTreeView anzeigen und auswerten

  Alt 18. Mär 2009, 18:26
Das Feld heit ja auch nicht mehr id sondern max1 oder max_id
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

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

Re: Datenbank in VirtualTreeView anzeigen und auswerten

  Alt 18. Mär 2009, 19:11
Hallo,

oder du liest das Feld aus über Fields[0].AsInteger

schöner ist halt das mit as einem netten Namen zu geben


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
 
#66

Re: Datenbank in VirtualTreeView anzeigen und auswerten

  Alt 18. Mär 2009, 19:41
Sorry, aber das versteh ich nicht.

Das Feld heißt in meiner Datenbank ID und nicht MAX_ID

Kann mir mal jemand das erklären. mit dem AS
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.851 Beiträge
 
Delphi 11 Alexandria
 
#67

Re: Datenbank in VirtualTreeView anzeigen und auswerten

  Alt 18. Mär 2009, 19:53
In deiner Tabelle heisst es vielleicht ID, in der Ergebnismenge aber nicht. Mit AS kann man den Namen in der Ergebnimenge setzen.
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
 
#68

Re: Datenbank in VirtualTreeView anzeigen und auswerten

  Alt 18. Mär 2009, 20:11
Ja, das hatte ich mir durch das AS gedacht, aber was bedeutet das.

Wie wende ich dann sowas an.

SQL-Code:

Select Max(Id) As ID_Max From MB256PLUS
heißt das, das mein Feld ID jetzt eine zusätzliche Bezeichnung hat, nämlich ID_Max.

Aber wenn ich das eintrage, kommt die Meldung das das Feld ID nicht vorhanden ist. Ich habe die Select Funktion auch mal mit anderen Feldern versucht. Aber da kommt der selbe Fehler mit dem entsprechenden Feld.

Delphi-Quellcode:
    QRyMB256PLUS.Close;
    QryMB256PLUS.SQL.Text := 'Select * From MB256PLUS';
    QryMB256PLUS.Open;
Irgendwie klappt mir nur die gesamte Abfrage
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.851 Beiträge
 
Delphi 11 Alexandria
 
#69

Re: Datenbank in VirtualTreeView anzeigen und auswerten

  Alt 18. Mär 2009, 20:35
Die Ergebnismenge hat auch nur ein Feld mit der Bezeichnung ID_Max
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

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

Re: Datenbank in VirtualTreeView anzeigen und auswerten

  Alt 19. Mär 2009, 07:26
Hallo,

Bsp.

Select Max(Id), Min(Id) From Tabelle

Wie sollen denn die beiden Felder heissen ?, 2mal ID geht nicht.
Das As gibt dem Teil einen neuen Namen

Select Max(Id) As Max_Id, Min(Id) As Heiko From Tabelle ergibt

Max_Id Heiko
100 1

Mit FieldByName('Max_Id').AsInteger bzw. FieldByName('Heiko').AsInteger
kommst du an die beiden Werte ran.

Alternativ Fields[0].AsInteger und Fields[1].AsInteger


Das nennt sich übrigens Feld-Alias.

Lade dir doch mal IBExpert (Personal) runter,
gebe die betreffende Query, dann siehst du auch, was rauskommt.



Heiko
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 7 von 9   « Erste     567 89      


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 03:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz