![]() |
Datenbank Rechner in Delphi
Hallo
auf Wunsch von Sharky erstelle ich hier ein neues Thema für mein Programm. Ich möchte ein Programm schreiben das verschiedene Namen und dazugehörige Werte aus einer Access Datenbank ausliest so das man sie auswählen kann. Und dann sollen die Werte addiert werden. Ich erkläre mal was ich schon habe: Ich habe eine ADOQuery für die Abfragen. Dann habe ich 5 ComboBoxen mit folgenden Code im onChange:
Delphi-Quellcode:
Vor diesen Boxen sind immer kleine Edit Felder in die man angeben kann wie viel mal man das haben will. Also ob diesen wert 1x oder 2x...
procedure TForm1.DBBox(Sender: TObject);
begin ComboBox.Items.Clear; ADOQuery.First; while not ADOQuery.EOF do begin ComboBox.Items.AddObject(ADOQuery.FieldbyName('name').AsString,TObject(ADOQuery.FieldByName('wert').AsString)); ADOQuery.Next; end; end; So nun mein Tabellen aufbau: name | wert Test1| 23M Kabel, 50 Karten, 50K Gewicht Test2| 20M Kabel, 12CM Karten, 10K Gewicht ... Dann wähle ich in den 5 ComboBoxen 5 verschiedene Werte aus ich kann aber auch nur 3 oder 2 auswählen. Dann werden die Werte auf Knopfdruck addiert. Rechnen wir Test 1 und test 2: 43M Kabel, 50 Karten, 12CM Karten, 60KG Gewicht Wenn ich jetzt ins eins der Edit Felder für Wert2 zum Beispiel 2x eingetippt hätte würde Wert2 zwei mal genommen werden. Das Ergebnis soll dann in einem Memo angezeigt werden. Ich hoffe ihr habt ein paar Ideen und könnt mir helfen. |
Re: Datenbank Rechner in Delphi
Normalisiere Deine DB, alles andere ist nur unnötige Parserei (das hatte ich ja bereits erwähnt).
|
Re: Datenbank Rechner in Delphi
Dazu müsste er seinen Grundsatz, keine Grundlagen zu lernen, aber endlich aufgeben!
|
Re: Datenbank Rechner in Delphi
OK, das sind die Nebenwirkungen ;)
|
Re: Datenbank Rechner in Delphi
Wenn Wissen und Verständnis als Nebenwirkung gelten ja :stupid:
|
Re: Datenbank Rechner in Delphi
Ich kann die Grundlagen!
Und ich möchte meine DB nicht normalisieren. Ich möchte das so beibehalten wie es jetzt ist und brauche dafür eine Lösung. |
Re: Datenbank Rechner in Delphi
Und warum willst du nicht normalisieren?
|
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Datenbanken" verschoben.
Delphi-Frage |
Re: Datenbank Rechner in Delphi
Weil ich an der DB nichts mehr ändern will. Das soll alles so bleiben. Muss ich denn das unbedingt machen?
|
Re: Datenbank Rechner in Delphi
Wenn du dir jetzt dir Arbeit erleichtern willst und später Fehler vermeiden ja.
|
Re: Datenbank Rechner in Delphi
Dann sag mir doch mal bitte wie das für meine oben geschriebene Datenbank aussehen müsste.
|
Re: Datenbank Rechner in Delphi
Ich verstehe nicht ganz wie aus den verschiedenen Werten was berechnet werden soll. Zeig mal den Algorithmus
|
Re: Datenbank Rechner in Delphi
Also ich nehme doch mal das oben genannte Beispiel:
name | wert Test1| 23M Kabel, 50 Karten, 50K Gewicht Test2| 20M Kabel, 12CM Karten, 10K Gewicht Es wird immer nur addiert. Ich weiß leider nicht was du nicht verstehst. Wenn man diese beiden addiert kommt folgendes raus: 43M Kabel, 50 Karten, 12CM Karten, 60KG Gewicht In welcher Reihenfolge diese Werte stehen ist egal. |
Re: Datenbank Rechner in Delphi
Wie willst du 50 und CM addieren? Oder karten + Kabel + Gewicht? Zeig mal die Rechnung.
|
Re: Datenbank Rechner in Delphi
Du speichert alle infos im Feld "Wert", als String. Und aus diesen Strings willst du dann deine Mengen pro Artikel addieren...
Sorry, dein Design ist dafür komplett ungeeignet. Deshalb strick dir erst einmal eine gescheite Speicherstruktur zusammen. Sonst riskierst du dich zu verrennen. |
Re: Datenbank Rechner in Delphi
Genau das sag ich doch die ganze Zeit.
|
Re: Datenbank Rechner in Delphi
@ Jelly
genau das besprechen wir hier doch gerade. @mkinzler 50 und CM addieren? Oder karten + Kabel + Gewicht? Zeig mal die Rechnung. 50 und CM sollen gar nicht addiert werden. Ich wollte damit nur zeigen das kein Werte wegfallen. 2 Beispiele: Wert1: 20M Kabel, 131L Bier, 58 Kartenspiele Wert2: 90M Kabel, 54L Cola, 0 Kartenbspiele Kommt raus: 110M Kabel, 131L Bier, 54L Cola, 58 Kartenspiele Unterschiedliche Werte die nicht addiert werden sollen nur wieder angezeigt werden. |
Re: Datenbank Rechner in Delphi
Und wie willst Du das anstellen? Erstmal alles, was eine Zahl ist, abschneiden, parsen und die verbleibenden Strings vergleichen? Sry, umständlicher geht es kaum noch.
|
Re: Datenbank Rechner in Delphi
Dann nimm 3 Tabellen:
Kunden ID Bez 1 Test1 2 Test2 Waren ID Bez 1 Kabel 2 Bier 3 Kartenspiele ... Vorgang ID Kunde Ware Menge 1 1 1 20 2 1 2 131 3 2 1 90 ... |
Re: Datenbank Rechner in Delphi
Genau, bei den Waren evtl. noch die Einheit (m, kg, l, etc.)
|
Re: Datenbank Rechner in Delphi
Hm kling nicht schlecht. Das Problem ist ich habe nur eine Tabelle.
Aber in der Tabelle habe ich eine Idee. Kann ich nicht anhand der ID des Namens die Ware ermitteln? |
Re: Datenbank Rechner in Delphi
Zitat:
Zitat:
|
Re: Datenbank Rechner in Delphi
Mir scheint, die Erleuchtung kommt greifbar nahe. :zwinker:
|
Re: Datenbank Rechner in Delphi
@ mkinzler
Ich weiß. Ich kann definitiv aber nur eine benutzen. Gibt es keine Möglichkeit mit nur einer? @ Deddy Vielleicht. |
Re: Datenbank Rechner in Delphi
Zitat:
|
Re: Datenbank Rechner in Delphi
Erstmal weil ich nur eine benutzen will.
Und zweitens müsste ich meinen ganzen Code den ich bisher habe um ändern... :oops: Also gibt es eine Möglichkeit oder nicht? |
Re: Datenbank Rechner in Delphi
Keine sinnvolle.
|
Re: Datenbank Rechner in Delphi
Und wie Jelly schon meinte: besser jetzt Arbeit investieren, als sich später grün und blau zu ärgern, weil das Design daneben ist.
|
Re: Datenbank Rechner in Delphi
Ok ich weiß. Ich möchte aber nur eine haben.
Und wie sehen die nicht so sinnvollen Lösungen aus? |
Re: Datenbank Rechner in Delphi
Die Waren wo anders Speichern oder fest im Programm coden. Davon ist aber mehr als abzuraten!
Schau dir die Vorteile von mehreren tabellen noch mal an, da dürfte es eigentlich kein Zögern deierseits mehr geben! |
Re: Datenbank Rechner in Delphi
Z.B. #18
|
Re: Datenbank Rechner in Delphi
Zitat:
|
Re: Datenbank Rechner in Delphi
@ mkinzler
Ich könnte doch von dem Datensatz woher der Name ist auch gleich den Wert aus der DB holen oder? @ Sergej Es ist aber eine feste Vorgabe. Ich darf nur eine Tabelle benutzen... |
Re: Datenbank Rechner in Delphi
Ich glaube du hast den Grundsatz relationaler Datenbanken nicht ganz verstanden
|
Re: Datenbank Rechner in Delphi
Oder der Auftraggeber, wenn es sich um eine Vorgabe handelt.
|
Re: Datenbank Rechner in Delphi
Zitat:
Zitat:
|
Re: Datenbank Rechner in Delphi
Ja eine Vorgabe. Ich habe seit zwei Wochen Delphi in der Schule. Jede Woche eine zwei Stunden. Und das ist mein erstes Projekt was ich zu hause machen soll.
Und deshalb darf ich nur eine Tabelle benutzen. Ich kann es halt nicht ändern. |
Re: Datenbank Rechner in Delphi
Ich kann mir nicht vorstellen, dass Euer Lehrer solche Vorgaben macht. Schau lieber nochmal genau in die Aufgabenstellung.
|
Re: Datenbank Rechner in Delphi
Ich habe es hier auf einem Zettel stehen. Und ihn sogar extra nochmal gefragt. Ich habe zwei Wochen dafür Zeit. Was soll ich denn da machen?
|
Re: Datenbank Rechner in Delphi
Zeig mal die geanue Aufgabenstellung.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 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