AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein .NET-Framework (managed code) C#, Dataset: Ich bekomme Cascaded Inserts nicht hin
Thema durchsuchen
Ansicht
Themen-Optionen

C#, Dataset: Ich bekomme Cascaded Inserts nicht hin

Ein Thema von Furtbichler · begonnen am 27. Mai 2012 · letzter Beitrag vom 27. Mai 2012
 
Furtbichler
(Gast)

n/a Beiträge
 
#1

C#, Dataset: Ich bekomme Cascaded Inserts nicht hin

  Alt 27. Mai 2012, 10:07
Hi,

Ich habe ein Dataset, und zwei Tabellen (Master, Detail).
Master = [PK MasterID]
Detail = [PK DetailID, FK MasterID]

Beide Primary keys sind Autoincrements.

Ich habe in Visual Studio ein Dataset mit den beiden Tabellen angelegt und die FK-Relation so eingestellt, das kaskadiertes Insert und Update aktiviert sind. Das Dataset ist auf 'HierarchicalUpdates=true' eingestellt.

Wenn ich zu einem existierenden Master ein paar Details hinzufüge, klappt es, d.h. beim Neuanlegen wird automatisch die MasterID befüllt, die DetailID bekommt zunächst einen negativen Wert und nach dem Speichern wird diese ID mit dem echten PK befüllt.

Wenn ich einen neuen Master einfüge und dann sofort Details erstelle, dann bekommen die Details korrekterweise die temporäre negative MasterID sowie ihre eigene temporäre negative DetailID. Soweit ist alles ok.

Nun muss das Zeugs in die Datenbank geschrieben werden:
Ich schaffe es einfach nicht, das erst der Master eingefügt wird, dessen neue ID automatisch in die Details überführt wird und dann die Details ihrerseits gespeichert werden.

Angeblich reicht es, "TableAdapterManager.UpdateAll()" aufzurufen, nur dann bekomme ich einen DBConcurrencyException im UpdateCommand. Und das, obwohl ich ein InsertCommand erwarte. Ich habe doch neue Datensätze hinzugefügt.

Wenn ich "MasterTableAdapter.Update(MyDataset.DetailTab le)" aufrufe, dann speichert er den neuen Master und ersetzt die temporären negativen MasterIDs in den Detaildatensätzen korrekterweise durch die neue ID. Super.... Aber die Details bekomme ich dann einfach nicht gespeichert: Ich bekomme den gleichen Fehler.

Wie verdammt krieg ich das hin, ohne ellenlangen Code zu schreiben. Das muss doch gehen!

PS: Eine "Lösung" wäre, jeden neuen Master sofort zu speichern, aber das ist keine Lösung, sondern ein Workaround. Daran bin ich nicht interessiert.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:47 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