Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Kompakte Datenbank (https://www.delphipraxis.net/2812-kompakte-datenbank.html)

Mike_C 8. Feb 2003 10:18


Kompakte Datenbank
 
Hi!

Das Problem, das ich habe ist nicht so ganz leicht zu definieren, deshalb habe ich die Suchmaschine auch nicht bemüht.

Ich möchte eine Datenbank schreiben, in der z.B verschiedene Arten von Büromaterial drinstehen. Die Struktur soll etwa so aussehen

Nr. (AutoInc)
Type (String)
Beschreibung (string)
Farbe (String)

Dann möchte ich 3 DBComboboxes füllen und zwar sollen in einer die Typen stehen, in der zweiten die Beschreibungen und in der dritten die Farben. Ist sowas möglich? oder muss ich 3 Datenbanken anlegen?

eddy 8. Feb 2003 10:42

Hallo Mike_C,

programmtechnisch machbar, aber woher nimmst Du das, was in den ComboBoxen stehen soll? Sollen alle Felder kombiniert werden oder gibt es zu jedem Type nur eine einzige Beschreibung? Soll in Abhängigkeit eines gewählten Begriffes, die mögliche Auswahl in den anderen ComboBoxen geändert werden?

mfg
eddy

Mike_C 8. Feb 2003 10:51

Ich will eigentlich nur eine Möglichkeit die Daten in der DB auseinander zu reißen. Die Daten sollen dann nichts mehr mit einander zu tun haben. Vielleicht war mein Beispiel nicht gut gewählt. Ich möchte einen CSS Editor schreiben (Cascading Style Sheet). Dazu brauche ich eine Reihe von Daten, die ich gerne alle in eine Datenbank schmeißen würde und dann in Abhängingkeit von einer Art Definition (dazu das Feld "Typ") in verschiedene Comboboxen schreiben.

z.B: wenn der Typ besagt, dass sich die Daten auf Font-Family beziehen sollen die Daten in einer Combobox stehen und wenn der Typ besagt, dass es sich um Pixelangaben handelt, sollen die Daten in einer anderen Combobox stehen. Sinn der Sache ist, dass ich eine einzige Datei hätte und nicht viele einzelne.

edit:
Eine Datenbank scheint mir hier in sofern sinnvoll, als dass ich die Möglichkeit habe ohne viel Umstände eine Übersicht über die CSS-Syntax zu realisieren.

eddy 8. Feb 2003 11:59

Hallo Mike_C,

anbei sende ich Dir erstmal ein UP (=Unterprogramm) zum Füllen Deiner ComboBoxen mit Daten aus einer Datenbank. Die Bedingungen, welche ComboBox mit welchem Feld aus welcher Datei gefüllt werden soll, kannst Du ja drum herum schreiben.

Delphi-Quellcode:
{UP initialiesiert die ComboBox mit den zur Auswahl bestimmten Feldern, die
 der Tabelle Tab entnommen werden
 - Tab muß zuvor geöffnet worden sein
 - die sortierung wird immer auf true gestellt}
procedure UP_CBInit(Tab : TTable; combobox : TComboBox; fld : String);
var
  s : string;
  i : integer;
  gefu : boolean;
begin
  if not Tab.Active then exit;
  combobox.Clear;
  combobox.Sorted := true;
  Tab.First;
  while not Tab.Eof do begin
    s := trim(Tab.FieldByName(fld).AsString);
    if s <> '' then begin
      gefu := false;
      for i := 0 to combobox.Items.Count - 1
        do gefu := gefu or (s = combobox.Items.Strings[i]);
      if not gefu then combobox.Items.Add(s);
    end;
    Tab.Next;
  end;
  combobox.DropDownCount := combobox.Items.Count;
  if combobox.DropDownCount > DropDownCount then combobox.DropDownCount := DropDownCount;

  Tab.Filter := '';
  Tab.Filtered := false;
end;
Vielleicht hilft's weiter.

mfg
eddy

Mike_C 8. Feb 2003 15:46

@eddy
thx für deine Bemühungen!

Wenn ich das richtig verstanden haben kann ich das "Drumherum" etwa so gestalten:

Code:
procedure LoadDataFromDB(Tab: TTable);
var typ: string;
begin
  with Tab do beign
     typ := FieldByName('Type').AsString;
     if Typ = 'Font-Family' then UP_CBInit(Tab, cbFontFamily, CSSSyntax);
     {... weitere typen-abfragen}
     
  end;
end;
Liege ich da richtig?
(I'm a :coder: with no real experiance in hacking databases :wink: )


Alle Zeitangaben in WEZ +1. Es ist jetzt 15: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-2025 by Thomas Breitkreuz