AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Smallint

Ein Thema von LOMBI · begonnen am 10. Dez 2004 · letzter Beitrag vom 14. Dez 2004
 
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

Re: Smallint

  Alt 14. Dez 2004, 14:41
Zitat von LOMBI:
wer kann mir bitte helfen, für eine Adressen.db ein SmallInt herzustellen?
I= Interessent
IA=Interessent m. Angebot
NK=Neukunde (1xgekauft)
SK=Stammkunde
AK=Altkunde (über ein Jahr nichts mehr gekauft)
Nach langem Nachdenken, glaube ich zu wissen was Du haben willst.

Kann es sein, dass Du eine Nachschlage Tabelle (Lookup Table) möchtest.

Du hast eine Haupttabelle (Master) mit z.B. folgenden Feldern:

Adressen.db

Adr_ID: Integer
Name: string(40)
Vorname: string(40)
Status_ID: Integer
Adresse: string(200)
...


Nun gibt es eine Nachschlagetabelle (Slave) mit folgenden Feldern:

Status.db

Status_ID: Integer
Status: string(2)
Status_Text: string(20)


In der Status Tabelle steht folgendes drin:
Code:
Status_ID Status  Status_Text
1          I       Interessent
2          IA      Interessent m. Angebot
3          NK      Neukunde (1xgekauft)
4          SK      Stammkunde
5          AK      Altkunde (über ein Jahr nichts mehr gekauft)
Es gibt nun die Möglichkeit in Delphi 2 Tabellen (TTable) so miteinander zu verknüpfen, dass automatisch der Status und der Status_Text statt der Status_ID (also des Integers) angezeigt wird.

Es gibt unzählige Möglichkeiten solch eine Verknüpfung herzustellen.

Eine Möglichkeit zur Anzeige in Grids (z.B. TDBGrid) ist:
  • 2 TTable auf das Formular
  • ein TDataSource auf das Formular
  • ein TDBGrid auf das Formular
  • die 2 Tables mit den Tabellen verbinden z.B.:
    Table1.Database := 'DBDEMOS'; Table1.TableName := 'Orders.db'; Table1.Active := True;
    Table2.Database := 'DBDEMOS'; Table1.TableName := 'Customers.db'; Table2.Active := True;
  • TDataSource mit Table1 verbinden z.B.:
    DataSource1.DataSet := Table1;
  • TDBGrid mit TDataSource verbinden z.B.:
    DBGrid1.DataSource := DataSource1;
  • Table1 (TTable) doppelklicken -> FeldEditor geht auf
  • Rechtsklick in Feldeditor und "Felder hinzufügen" auswählen
  • Anzuzeigende Felder auswählen z.B.:
    OrderNo, CustNo und SaleDate
  • nun wieder Rechtsklick in den FeldEditor und "Neues Feld" auswählen
  • Im "Neues Feld" Dialog das anzuzeigende Feld definieren z.B.:
    Feldeigenschaften.Name := Kunde; // Komponente wird automatisch zu Table1Kunde
    Feldeigenschaften.Typ := string;
    Feldeigenschaften.Größe := 20;
    Feldtyp := Nachschlagen;
    Nachschlage Definition.Schlüsselfelder := CustNo; // Index der Mastertabelle auf nachzuschlagendes Feld
    Nachschlage Definition.Datenmenge := Table2; // die Nachschlagetabelle
    Nachschlage Definition.Schlüssel := CustNo; // das Feld der Nachschlagetabelle was dem Schlüsselfeld in Table1 entspricht
    Nachschlage Definition.Ergebnis := Company; // Das Feld was Angezeigt werden soll
  • Fertig -> Im Grid werden nun die Felder OrderNo, CustNo, SaleDate und Kunde angezeigt.
    Das Feld Kunde entspricht dem Kunden der unter CustNo in Tabelle Customers.db abgelegt ist.

Das bringt aber nur etwas bei der Anzeige.

Zum Eingeben verwenden Sie am besten die TDBLookupComboBox.
Das ist eine ComboBox, die in die mit DataSource verbundene Tabelle einen Integer abspeichert.
Aber aus der mit ListSource verbundenen Tabelle das unter ListField anzeigt.
Einfach mal F1 drücken und die Hilfe zu der Komponente lesen

Ich hoffe dieser Artikel hilft weiter
Viel Spaß
Dr. MaBuSE
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
 


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 01:18 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-2025 by Thomas Breitkreuz