AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi dbExpress und gebundene Steuerelemente
Thema durchsuchen
Ansicht
Themen-Optionen

dbExpress und gebundene Steuerelemente

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

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

dbExpress und gebundene Steuerelemente

  Alt 14. Apr 2008, 14:58
Datenbank: Interbase • Version: 2007 • Zugriff über: dbExpress 4
Hallo Leute,

ich arbeite mich gerade in die DB-Programmierung ein und es ist frustrierend. Ich versuche mich mit dbExpress und den gebundenen Steuerelementen. Das Ganze über die Kette (TSQLDataSet – TDataSetProvider – TClientDataSet – TdataSource) und daran dann die Steuerelemente.

Das Schlimmste ist die deutsche Literatursituation. Alles was es zur Datenbankprogrammierung unter Delphi gibt, ist Jahre alt und befasst sich nur mir BDE oder, wenn es hoch kommt, mit IBX. Zu dbExpress gibt es gerade einmal ein paar kleine Kapitel und das wars… Keine Hinweise zur allgemeinen Vorgehensweise, keine durchgehenden Beispiele.

Ich habe eben nicht schon jahrelange BDE-Erfahrung, doch für Neueinsteiger konnte ich bisher nix finden.

So kann man aber keine neuen Entwickler zu Delphi locken. Hier sollte sich CodeGear mal was einfallen lassen, schließlich sollen dbExpress doch die DBKomponenten der Zukunft sein.

Dabei spielt das Geld für mich an der Stelle eine echt untergeordnete Rolle, ich würde auch 200 € für so ein Buch ausgeben, wenn es den richtigen Einstieg beschreiben würde und das in Deutsch versteht sich.

<Frust Ende> Zu meiner Frage:
Die Abfrage einer einfachen Tabelle ist ja kein Problem und auch das Zurücksichern aus dem ClientDataSet zur SQL DB geht soweit ganz gut. Um so was wie Transaktionen und Mehrbenutzerbetrieb hab ich mir aber noch keine Gedanken gemacht.

Doch schon bei einem einfachen Join ist Schluss. Wie bekomme ich die Texte zu den Fremdschlüsseln aus der anderen Tabelle in meine Combobox und wie sichere ich dann aus dem ClientDataSet die Schlüssel wieder zurück?

Beispiel zur Erklärung:
Ich habe in einer Tabelle mehrere Feldschlüssel, die Texte dazu sind in einer anderen Tabelle. Beispielsweise in der Auftragstabelle ist ein Sachbearbeiterschlüssel. Im Formular soll man aber den Namen in einer Combobox auswählen können. Bei Speichern soll dann natürlich der passende Schlüsselwert in die Tabelle geschrieben werden. So Simpel sich das anhört, ich bekomme es nicht hin und meine Bücher bringen mich nicht weiter…

Jede Hilfe ist willkommen. Tutorials, Bücher die ich evtl. noch nicht kenne, oder mal eine konkrete Anleitung, …


Vielen Dank im Voraus.

Gruß,
Alex
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: dbExpress und gebundene Steuerelemente

  Alt 14. Apr 2008, 15:30
Zitat von Alex_kfm:
Wie bekomme ich die Texte zu den Fremdschlüsseln aus der anderen Tabelle in meine Combobox und wie sichere ich dann aus dem ClientDataSet die Schlüssel wieder zurück?

Beispiel zur Erklärung:
Ich habe in einer Tabelle mehrere Feldschlüssel, die Texte dazu sind in einer anderen Tabelle. Beispielsweise in der Auftragstabelle ist ein Sachbearbeiterschlüssel. Im Formular soll man aber den Namen in einer Combobox auswählen können. Bei Speichern soll dann natürlich der passende Schlüsselwert in die Tabelle geschrieben werden. So Simpel sich das anhört, ich bekomme es nicht hin und meine Bücher bringen mich nicht weiter…
Du musst in deinem Dataset noch ein zusätzliches Lookup-Field definieren und ausserdem noch ein Dataset + Datasource für die Lookup Tabelle bereitstellen.
Die (Lookup-)Query für die Sachbearb. könnte so aussehen:
SELECT IdSachbearb, NameSachbearb FROM Sachbearbeiter ORDER BY NameSachbearb In deiner Haupttabelle gibt es dann auch das Feld "IdSachbearb".
Wenn man dann das Lookupfield hinzufügt (doppelklick auf die Hauptquery Komponente), dann erscheint dieses Feld im Grid mit einer Drop-Down-Liste.
Nicht vergessen, die Lookupquery zusammen mit der Hauptquery zu öffnen.
Andreas
  Mit Zitat antworten Zitat
Peinhard

Registriert seit: 8. Jul 2006
152 Beiträge
 
#3

Re: dbExpress und gebundene Steuerelemente

  Alt 14. Apr 2008, 16:18
Wenn du zum Editieren kein DBGrid sondern Einzelkomponenten verwendest sieh dir auch die Komponente TDBLookupComboBox an. Die DataSource-Eigenschaft verknüpft mit der 'Ziel-Tabelle', die ListSource mit der 'Quell-Tabelle' (also zB den Sachbearbeitern). Näheres siehe OLH zu der Komponente.

Für die Anzeige in einem DBGrid kannst du wie von shmia beschrieben ein Lookup-Feld definieren, oder eben auch mit einen Join den zum Schlüssel gehörigen Text ziehen (was für ein 'Nur-Anzeige-Grid' performanter und bequemer ist).
Confuzius say: Early worm have death wish.
  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 00:36 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