Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL In DBGrid markierten Datensatz löschen/ändern (https://www.delphipraxis.net/132640-sql-dbgrid-markierten-datensatz-loeschen-aendern.html)

germanos 16. Apr 2009 18:27

Re: SQL In DBGrid markierten Datensatz löschen/ändern
 
Was ist mit richtige DB gemeint? Wie gesagt, stecke ich noch in den "Delphi-Anfänger"-Problemen fest.

Die Anwendung wird ein Haushaltsbuch mit folgenden Spalten: monat, NebenkontoID, Datum, Beschreibung und Preis.

Darüber gibt es 2 DBs. Die erste DB beinhaltet die 6 Hauptkonten wie Fixkosten, Haushalt usw.
Die zweite DB beinhaltet die Nebenkonten wie Fixkosten= Miete, Versicherung, Strom usw.
Die dritte DB, um die es jetzt geht, beinhaltet alle Ausgaben und Einnahmen, die anfallen, identifiziert durch die NebenkontoID, die zusammengesetzt ist aus der ID der ersten DB und der zweiten DB. Beispiel: Die Miete wird dem 1. Konto DB1 und dem 1. Konto DB2 zugeordnet durch die zusammengesetzten IDs der ersten beiden DBs, also 1 und 1 =11

Ich bin überzeugt, das es da bessere Ansätze geben wird, aber ich wollte alles über Datenbanken abwickeln. Und mit SQL sind Abfragen durch Selektion sehr einfach machbar. Bis zu dem jetzt besprochenen Problem. Mit einer TTable und einer Navigator-Komponente ist das Editieren und löschen von Daten einfacher. Da wird aber der Rest halt komplizierter.

Sollten dennoch Vorschläge vorhanden sein, wie man die ganze Sache einfacher gestaltet, fange ich auch nochmal von vorne an.

Ich hoffe, das die Beschreibung meiner Anwendung verständlich war und freue mich auf Verbesserungsvorschläge,

Peter

khh 16. Apr 2009 18:41

Re: SQL In DBGrid markierten Datensatz löschen/ändern
 
Zitat:

Zitat von germanos
Was ist mit richtige DB gemeint? Wie gesagt, stecke ich noch in den "Delphi-Anfänger"-Problemen fest.

Die Anwendung wird ein Haushaltsbuch mit folgenden Spalten: monat, NebenkontoID, Datum, Beschreibung und Preis.

Darüber gibt es 2 DBs.




Peter

du verwechselst hier schon DB mit Tabelle.

ich denke du solltest dich erst mal näher mit DB beschäftigen bevor du an die Umsetzung gehst.

Gruss KH

germanos 16. Apr 2009 18:46

Re: SQL In DBGrid markierten Datensatz löschen/ändern
 
Nun das ist natürlich die Hilfe die ich brauche. So etwas wie " Mach erst mal deiner Schulaufgaben, bevor du bei den Profis mitspielen willst."

Ich hoffe, keinem von euch zufiel Zeit gestohlen zu haben.

Vielen Dank!!

mkinzler 16. Apr 2009 18:52

Re: SQL In DBGrid markierten Datensatz löschen/ändern
 
Nein, wir helfen ja gern. Nur sollte ein gewisses Grundlagenwissen vorhanden sein. Ein Primärschlüssel ist ein Feld, über welches man einen Datensatz eindeutig identifizieren kann. Er kann ein Merkmal des datensatzes sein ( z.B. Artikelnr) oder künstlich sein ( z.B. als autoinc). Die künstlichen haben den Vorteil, das man alle realen Eigenschaften ändern kann, ohne das das einen Einfluss auf die Beziehungen zwischen den Datensätzen hat.

khh 16. Apr 2009 18:55

Re: SQL In DBGrid markierten Datensatz löschen/ändern
 
Zitat:

Zitat von germanos
Nun das ist natürlich die Hilfe die ich brauche. So etwas wie " Mach erst mal deiner Schulaufgaben, bevor du bei den Profis mitspielen willst."

Ich hoffe, keinem von euch zufiel Zeit gestohlen zu haben.

Vielen Dank!!

sollte sicher nicht schulmeisterisch wirken, sorry wenns so rüber kam.
Eine gewisse Grundkenntniss sollte aber dennoch vorhanden sein, wenn du die Hilfe hier auch verstehen willst.


Gruss KH

germanos 16. Apr 2009 19:03

Re: SQL In DBGrid markierten Datensatz löschen/ändern
 
Wenn ich das richtig verstehe, brauche ich eine Spalte, in der für jeden Datensatz ein eindeutiger Eintrag steht. Mit dieser Spalte hätte ich dann aber auch die Möglichkeit mit einer WHERE-Abfrage an den zu löschenden oder zu editierenden Datensatz zu gelangen. Für die beiden ersten TABELLEN benutze ich Indizes zum verbinden der 2 Tabellen. Wenn Indizes und Primärschlüssel nicht das gleiche sind, habe ich das falsch verstanden. Aber in den 3 dicken Büchern über Delphi ( u.a. Datenbanken mit Delphi) ist alles sehr oberflächlich und ohne konkrete Beispiele erklärt. Die berühmte Telefonnummer-Tabelle ist da nicht sehr aufschlußreich.

Dennoch würde eine weitere Spalte für die eindeutige Identifizierung wohl ausreichen, oder??

Peter

mkinzler 16. Apr 2009 19:06

Re: SQL In DBGrid markierten Datensatz löschen/ändern
 
Ein Index ist eine Inhaltsverzeich über einen Ausschnitt von Feldern in einer definierten Reihenfolge, der beim Suchen eines Datensatzes anstatt der Originaltabelle durchsucht wird. Für Primärschlüssel wird ein Index angelegt, es handelt sich aber nicht um Synonyme.

khh 16. Apr 2009 19:08

Re: SQL In DBGrid markierten Datensatz löschen/ändern
 
zeig uns doch mal die genaue struktur der tabellen,
ich denke dann kann man besser helfen.


Gruss KH

DeddyH 16. Apr 2009 19:08

Re: SQL In DBGrid markierten Datensatz löschen/ändern
 
Richtig, Du brauchst einen Primärschlüssel, den Du bei vielen DBs auf "Autowert" bzw. "Autoinc" setzen kannst (bei "echten" DBMS braucht es dafür etwas mehr Eigenarbeit). Das bedeutet, dass die DB selbstständig diesen Wert hochzählt, ohne dass Du etwas dafür tun musst. Somit hast Du einen eindeutigen Wert zur Identifikation des Datensatzes.

germanos 16. Apr 2009 19:13

Re: SQL In DBGrid markierten Datensatz löschen/ändern
 
Ich schätze, das sind dann die mdx-Dateien.

Wie kann ich die Struktur anzeigen? Der Quelltext ist da nicht aussagekräftig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:24 Uhr.
Seite 2 von 4     12 34      

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