Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Nested Datasets: Falscher automatischer FK Index in Details-DBGrid beim Insert (https://www.delphipraxis.net/160960-nested-datasets-falscher-automatischer-fk-index-details-dbgrid-beim-insert.html)

Neisklar80 9. Jun 2011 16:34

Datenbank: MySQL • Version: 5.1 • Zugriff über: dbExpress (XE)

Nested Datasets: Falscher automatischer FK Index in Details-DBGrid beim Insert
 
Hallo zusammen,

ich greife in Delphi XE über dbExpress auf meine MySQL DB zu.
Das Datenbankschema ist über Master/Detail Beziehungen abgebildet, welches dann vom TDataSetProvider in ein Nested (Client)Dataset überführt wird. Daran klemmen dann weitere CDS welche als Datasets für DBGrids dienen.
In meiner Datenbank ist der PK immer 'id' und die FKs in den Detailtabellen <reftable>_id.
Wenn ich in einem Detail DBGrid nun einen neuen Datensatz einfüge, wird automatisch die ID des Masters in das Feld 'id' des Detaildatensatzes geschrieben, was schlichtweg falsch ist, muss ja schließlich in das FK-Feld.
Es gibt einen QC-Report (http://qc.embarcadero.com/wc/qcmain.aspx?d=65694) mit diesem Problem, welcher aber bis heute nicht gefixt ist. Auch funktioniert der Workaround wie dort beschrieben nicht mit dbExpress.
Ich habe da alle möglichen Kombinationen versucht, SQLDataSet mit Param-Query, SQLTable mit MasterSource, SQLQuery mit Param, nichts hilft da.
Einzig wenn ich in der Datenbank die Feldnamen so ändere, dass der Name des PK mit dm Namen der FKs übereinstimmt. Aber DB-Schema zu ändern ist leider nicht drin.

Da das ganze dbExpress Zeugs neu für mich ist, und ich früher nur mit handgemachten Queries über ZEOS gearbeitet habe, kann auch auch sein, ich habe schlichtweg vergessen irgendwo einen Haken zu machen.
Hat irgendjemand eine elegante Lösung dafür?
In der Hoffnung das diese nicht darauf hinausläuft, AfterInsert-Events für jedes DB-Grid zu setzen.)

Vielen Dank


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:59 Uhr.

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