M
Anders ansgedrückt: (runtergebrochen auf das minimalste, ohne Profil etc., weil das scheinbar verwirrt)
Ich habe eine Datenbank mit mehreren Tabellen: bspw. für Serien
- Tabelle 1 "Serien " mit Feldern: ID, Video_Titel, Seasons
- Tabelle 2 "Staffeln" mit Feldern: ID, SerienID, Season, EpisodeAnzahl
- Tabelle 3 "Episoden" mit Feldern: ID, SeasonID, FolgenTitel und diverse andere
Eingetragene Serien, bspw:
- Breaking Bad
- Supernatural
- Akte X
MainForm enthält:
- ABSTable1->MasterSource = DataSource_Profile;
- Diverse weitere Table und DataSource die miteinander verknüpft sind (an der Stelle egal, weil es dem selben Prinzip folgt (Serie->Staffel->Folge(n))
- DataSource_Alle_Serien->DataSet = Tabelle1;
- Query1->DataSource = DataSource_Alle_Serien;
- DataSource1->DataSet = Query1;
- DBGrid1->DataSource = DataSource1;
DetailForm enthält:
DBEdit1->DataSource = DataSource_Alle_Serien;
DBEdit1->DataField = Video_Titel;
DBEdit2->DataSource = DataSource1;
DBEdit2->DataField = Video_Titel;
Im MainForm habe ich einen Query, der holt sich die Daten aus Tabelle1 (Serien), sortiert sie, angezeigt werden sie im DBGrid.
Doppelklick auf einen Eintrag im DBGrid öffnet das DetailForm.
Im Detailform will ich anzeigen: (in einzelnen Tabs)
Serienname und die erfassten Stammdaten
DBEdit1 funktioniert und der Serienname wird angezeigt. Allerdings kann ich den Text nicht bearbeiten, was wohl am Query liegen dürfte.
Hier brauche ich wohl ein Update-Statement, oder? Kann man das auch direkt verknüpfen? Wenn ich die Tabelle direkt öffne, kann ich das Feld zwar bearbeiten und es wird auch gespeichert (sofern ich Post() aufrufe), allerdings wird nicht der Datensatz angezeigt den ich will.
Möchte ich bspw. die Stammdaten von "Supernatural" anzeigen/bearbeiten, wird mir "Breaking Bad" angezeigt.
Habe in dem Fall nur das Feld der "ID" welche vergeben wird, wenn die Serie eingetragen wird (ID hat AutoInc). Diese "ID" lese ich via DBGrid (DBGrid1->Fields[ 0 ]->AsInteger) aus, weil ich es nicht anders hinbekommen habe. Die Spalte wird im DBgrid nicht angezeigt. Diese ID stimmt natürlich nicht mit dem RecNo? der Datenbanktabelle überein (via DataSource->DataSet->RecordNo kann man den ja auslesen)
DBEdit2 ist nicht editierbar, dafür wird die richtige Serie angezeigt.
Hoffe das es jetzt klar ist...