Wert eines Tabellenfeldes in andere Tabelle übertragen

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
Antworten
Cuci
Beiträge: 52
Registriert: Do 10. Dez 2015, 20:09
OS, Lazarus, FPC: LinuxMint 18.3 Cinnamon - Win7 in VM - Lazarus 1.8.0 fpc 3.0.4
CPU-Target: 64 bit
Wohnort: Wo es warm ist

Wert eines Tabellenfeldes in andere Tabelle übertragen

Beitrag von Cuci »

Hallo, ich bin dabei, mein Vermietungsprogramm von Delphi 2010 (BDE) auf Lazarus (MySQL) umzustellen weil ich nicht ewig Windows mitschleppen will . . .

Ist klar, dass es Unterschiede gibt, so etwa die Verwendung von MySQL anstelle der BDE. Ich habe eine 'Mieter'-Tabelle und eine 'Anrede'-Tabelle. Wenn ich einen neuen Mieter anlege, wähle ich die Anrede mittels einer DBLookupComboBox aus. Das Geschlecht soll automatisch in die Mieter-Tabelle eingetragen werden. Das geschieht im Delphi mit folgendem Code: Automatisch wird auch der Index aus Name und Vorname gebildet sowie das Datum eingetragen.

Code: Alles auswählen

procedure TFMain.NavigatorMieterPost;
var
    nam, vorn  : String;
begin
    FData.TableMieter.Open;
    FData.TableMieter.Edit;
 
    nam :=  FData.TableMieterName.Value;   { Datenfeld NameVorname automatisch füllen }
    vorn := FData.TableMieterVorname.Value;
    FData.TableMieterNameVorname.Value := nam + vorn;
 
    FData.TableMieterDatum.Value  :=  date;
 
    FData.TableMieterGeschl.Value := FData.TableAnredeGeschlec.Value;
 
    FData.TableMieter.Post;
    FData.TableMieter.Open;
end;


Unter Lazarus wird leider immer der Wert (Geschlecht) des ersten Datensatzes der Anrede-Tabelle gespeichert. :evil:
Zuletzt geändert von m.fuchs am Mi 21. Feb 2018, 21:35, insgesamt 2-mal geändert.
Grund: Highlighter gesetzt

Benutzeravatar
gladio
Beiträge: 217
Registriert: Sa 21. Jun 2014, 06:15
OS, Lazarus, FPC: Win10-64 - aktuelle Lazarus/FPC Standard-Edition
CPU-Target: 64Bit
Wohnort: Rügen

Re: Wert eines Tabellenfeldes in andere Tabelle übertragen

Beitrag von gladio »

Eventuell sind deine Tabellen Anrede und Mieter nicht in Relation, also Master-Detail.
Welche Datenbank hattest du denn in der Delphi-Version?
Die BDE ist/war nur eine Zwischenschicht zwischen Anwendung und Datenbank um die Handhabung der DB zu erleichtern.
Oder diese Zeile mal auskommentieren:

Code: Alles auswählen

 FData.TableMieterGeschl.Value := FData.TableAnredeGeschlec.Value;

Cuci
Beiträge: 52
Registriert: Do 10. Dez 2015, 20:09
OS, Lazarus, FPC: LinuxMint 18.3 Cinnamon - Win7 in VM - Lazarus 1.8.0 fpc 3.0.4
CPU-Target: 64 bit
Wohnort: Wo es warm ist

Re: Wert eines Tabellenfeldes in andere Tabelle übertragen

Beitrag von Cuci »

Hallo gladio, ich habe nachgesehen: Die Tabellen sind auch im Dephi nicht in einer Master/Slave-Relation. Ich habe dort auch keine zusätzliche Datenbank, das macht wirklich alles die BDE.

Aber ich glaube, ich muss es mit Bookmarks versuchen, um auf den richtigen Datensatz der Tabelle 'Anrede' zu kommen. Ich hatte schon damit experimentiert, aber keinen Erfolg gehabt. Also werde ich das nochmal angehen.

Gruß Harald

Antworten