AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Sinnvolle DB-Abfragen ohne gebundene Steuerelemente
Thema durchsuchen
Ansicht
Themen-Optionen

Sinnvolle DB-Abfragen ohne gebundene Steuerelemente

Ein Thema von Alex_kfm · begonnen am 7. Apr 2008 · letzter Beitrag vom 8. Apr 2008
Antwort Antwort
Alex_kfm

Registriert seit: 6. Sep 2006
37 Beiträge
 
Delphi 2007 Professional
 
#1

Sinnvolle DB-Abfragen ohne gebundene Steuerelemente

  Alt 7. Apr 2008, 21:51
Datenbank: Interbase • Version: 2007 • Zugriff über: dbExpress
Hallo Leute,

ich arbeite mich gerade in die Datenbankprogrammierung ein und verwende hierzu dbexpress 4 und Delphi 2007. Soweit klappt alles ganz gut, doch bei einer Sache stecke ich fest.

Ich verwende keine gebundenen Steuerelemente oder ähnliches. Ich habe eine Funktion erstellt, die die Daten über ein DataSet abfragt und dann über ein Record zurückgibt. In einer Schleife weise ich einige Member des Records an einen ListView. Soweit, so gut.

Wenn ich jetzt einen Eintrag aus dem ListView auswähle, will ich nun den gesamten Datensatz, also den Record, öffnen. Und hier habe ich das Problem. Meist nehme ich jetzt die Strings aus den Spalten des ListViews und mache wieder eine Abfrage an die Datebank um die gesamten Daten zu bekommen. Doch bei einigen ListViews sind nicht genug eindeutige Daten drin, so dass ich eben keine eindeutige Abfrage machen kann.

Ich fürchte, ich mache hier grundsätzlich was falsch oder renne halt in die Flasche Richtung. Über Hinweise zur besseren oder richtigen Vorgehensweise sehr dankbar.

Dank Euch.
Alex
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Sinnvolle DB-Abfragen ohne gebundene Steuerelemente

  Alt 7. Apr 2008, 21:53
Speichere, die Schlüssel zusätzlich in den Records
Markus Kinzler
  Mit Zitat antworten Zitat
Alex_kfm

Registriert seit: 6. Sep 2006
37 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Sinnvolle DB-Abfragen ohne gebundene Steuerelemente

  Alt 8. Apr 2008, 06:44
Hallo mkinzler,

das mache ich schon, der Schlüssel ist im Record. Doch ich weise dem ListView ja nur ein paar Strings aus dem Record zu und der Schlüssel gehört nicht dazu. Die Werte, die ich den ListItems zuweise, sind ja die, die m ListView als Spalten sichtbar sind. Nur der Schlüssel ist ja für den Anwender uninteressant und daher packe ich ihn nicht mit da rein und genau das ist mein Problem.

Wenn ich die ausgewählte Zeile des ListViews habe, dann fehlt mir der ursprüngliche Record, ich habe dann nur noch ein paar Strings aus dem Record und diese reichen nicht aus, um eine eindeutige Abfrage an die DB zu starten. Wenn es sowas wie ein Tag in dem ListItem gäbe, würde ich dort (unsichtbar) den Schlüssel speichern, doch ich konnte nix finden.

Wie macht ihr das denn so? Verwendet ihr alle gebundene Steuerelemente? Oder gibts da noch andere Lösungen?

Dank Euch für eure Vorschläge.

Der
Alex
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Sinnvolle DB-Abfragen ohne gebundene Steuerelemente

  Alt 8. Apr 2008, 06:51
Pack doch einen Zeiger auf den Array in .Data
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

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

Re: Sinnvolle DB-Abfragen ohne gebundene Steuerelemente

  Alt 8. Apr 2008, 12:11
Hallo,

ich würde statt dem Record gleich eine Klasse nehmen.
Die Klasse kann dann als .Data in das ListItem eingetragen werden.

Delphi-Quellcode:
var
  TMyClass = class
    iId: Integer;
  end;

var
  MyClass: TMyClass; // keine lokale Variable !!
begin
  MyClass:= TMyClass.Create;

  MyClass.Id:= 1; // <<-- aus dem DataSet

....

var
  ListItem: TListItem;
begin
  ListItem:= ListView.Items.Add;
  ListItem.Data:= MyClass;
  ListItem.Caption:= 'bla';
end;

Heiko
Heiko
  Mit Zitat antworten Zitat
Alex_kfm

Registriert seit: 6. Sep 2006
37 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Sinnvolle DB-Abfragen ohne gebundene Steuerelemente

  Alt 8. Apr 2008, 16:25
Hallo mkinzler,

das war ne gute Idee, ich hab mir jetzt ein Array von den Records gebaut und lege unter .Data einen Pointer darauf ab. Klappt wunderbar.

Hallo Heiko,

noch wächst die Anwendung, ich denke auch, dass ich später aus den Records echte Klassen machen werde, die dann auch eigene Funktionen / Methoden enthalten.

Danke Euch... macht immer wieder Spass wie bei der DP!

Der
Alex
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:54 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