Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Datenbank Rechner in Delphi (https://www.delphipraxis.net/101936-datenbank-rechner-delphi.html)

Jack23 20. Okt 2007 21:14


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:
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;
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...

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.

DeddyH 21. Okt 2007 11:16

Re: Datenbank Rechner in Delphi
 
Normalisiere Deine DB, alles andere ist nur unnötige Parserei (das hatte ich ja bereits erwähnt).

mkinzler 21. Okt 2007 11:17

Re: Datenbank Rechner in Delphi
 
Dazu müsste er seinen Grundsatz, keine Grundlagen zu lernen, aber endlich aufgeben!

DeddyH 21. Okt 2007 11:18

Re: Datenbank Rechner in Delphi
 
OK, das sind die Nebenwirkungen ;)

mkinzler 21. Okt 2007 11:22

Re: Datenbank Rechner in Delphi
 
Wenn Wissen und Verständnis als Nebenwirkung gelten ja :stupid:

Jack23 21. Okt 2007 13:33

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.

mkinzler 21. Okt 2007 13:35

Re: Datenbank Rechner in Delphi
 
Und warum willst du nicht normalisieren?

DP-Maintenance 21. Okt 2007 13:38

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Datenbanken" verschoben.
Delphi-Frage

Jack23 21. Okt 2007 14:23

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?

mkinzler 21. Okt 2007 14:35

Re: Datenbank Rechner in Delphi
 
Wenn du dir jetzt dir Arbeit erleichtern willst und später Fehler vermeiden ja.

Jack23 21. Okt 2007 15:02

Re: Datenbank Rechner in Delphi
 
Dann sag mir doch mal bitte wie das für meine oben geschriebene Datenbank aussehen müsste.

mkinzler 21. Okt 2007 15:08

Re: Datenbank Rechner in Delphi
 
Ich verstehe nicht ganz wie aus den verschiedenen Werten was berechnet werden soll. Zeig mal den Algorithmus

Jack23 21. Okt 2007 15:32

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.

mkinzler 21. Okt 2007 15:33

Re: Datenbank Rechner in Delphi
 
Wie willst du 50 und CM addieren? Oder karten + Kabel + Gewicht? Zeig mal die Rechnung.

Jelly 21. Okt 2007 15:37

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.

DeddyH 21. Okt 2007 16:01

Re: Datenbank Rechner in Delphi
 
Genau das sag ich doch die ganze Zeit.

Jack23 21. Okt 2007 16:05

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.

DeddyH 21. Okt 2007 16:07

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.

mkinzler 21. Okt 2007 16:10

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
...

DeddyH 21. Okt 2007 16:11

Re: Datenbank Rechner in Delphi
 
Genau, bei den Waren evtl. noch die Einheit (m, kg, l, etc.)

Jack23 21. Okt 2007 16:17

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?

mkinzler 21. Okt 2007 16:19

Re: Datenbank Rechner in Delphi
 
Zitat:

Das Problem ist ich habe nur eine Tabelle.
Kann man aber ändern.
Zitat:

Kann ich nicht anhand der ID des Namens die Ware ermitteln?
Ja das ist das Prinzip

DeddyH 21. Okt 2007 16:21

Re: Datenbank Rechner in Delphi
 
Mir scheint, die Erleuchtung kommt greifbar nahe. :zwinker:

Jack23 21. Okt 2007 16:50

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.

DeddyH 21. Okt 2007 16:55

Re: Datenbank Rechner in Delphi
 
Zitat:

Zitat von Jack23
Ich kann definitiv aber nur eine benutzen.

Wieso?

Jack23 21. Okt 2007 17:15

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?

mkinzler 21. Okt 2007 17:16

Re: Datenbank Rechner in Delphi
 
Keine sinnvolle.

DeddyH 21. Okt 2007 17:18

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.

Jack23 21. Okt 2007 17:21

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?

mkinzler 21. Okt 2007 17:23

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!

DeddyH 21. Okt 2007 17:23

Re: Datenbank Rechner in Delphi
 
Z.B. #18

Sergej 21. Okt 2007 17:26

Re: Datenbank Rechner in Delphi
 
Zitat:

Zitat von Jack23
Ok ich weiß. Ich möchte aber nur eine haben.

Und wie sehen die nicht so sinnvollen Lösungen aus?

Ich denke (hoffe) nicht dass dir hier jemand eine "falsche" Lösung präsentieren wird. Warum um Himmels Willen streubst du dich so dermaßen etwas zu lernen/es gleich richtig zu machen? Dein Ansatz ist zum Scheitern verurteilt, sei doch froh, dass dir jemand den richtigen Weg weist. Ich versteh es nicht...

Jack23 21. Okt 2007 17:32

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...

mkinzler 21. Okt 2007 17:34

Re: Datenbank Rechner in Delphi
 
Ich glaube du hast den Grundsatz relationaler Datenbanken nicht ganz verstanden

DeddyH 21. Okt 2007 17:35

Re: Datenbank Rechner in Delphi
 
Oder der Auftraggeber, wenn es sich um eine Vorgabe handelt.

Sergej 21. Okt 2007 17:37

Re: Datenbank Rechner in Delphi
 
Zitat:

Zitat von Jack23
@ Sergej

Es ist aber eine feste Vorgabe. Ich darf nur eine Tabelle benutzen...

Zitat:

Zitat von Jack23
Erstmal weil ich nur eine benutzen will.

Und zweitens müsste ich meinen ganzen Code den ich bisher habe um ändern... :oops:

Ähm ja...Vorgabe. Naja ist mir eigentlich wurscht, manche Leute sind einfach lernresistent.

Jack23 21. Okt 2007 17:44

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.

DeddyH 21. Okt 2007 17:50

Re: Datenbank Rechner in Delphi
 
Ich kann mir nicht vorstellen, dass Euer Lehrer solche Vorgaben macht. Schau lieber nochmal genau in die Aufgabenstellung.

Jack23 21. Okt 2007 17:52

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?

mkinzler 21. Okt 2007 17:54

Re: Datenbank Rechner in Delphi
 
Zeig mal die geanue Aufgabenstellung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:52 Uhr.
Seite 1 von 2  1 2      

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