![]() |
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 |
Re: SQL In DBGrid markierten Datensatz löschen/ändern
Zitat:
ich denke du solltest dich erst mal näher mit DB beschäftigen bevor du an die Umsetzung gehst. Gruss KH |
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!! |
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.
|
Re: SQL In DBGrid markierten Datensatz löschen/ändern
Zitat:
Eine gewisse Grundkenntniss sollte aber dennoch vorhanden sein, wenn du die Hilfe hier auch verstehen willst. Gruss KH |
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 |
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.
|
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 |
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.
|
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 02: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