.NET DataAdapter und FoxPro Tabelle mit Autoincrementfeld

03/10/2008 - 14:05 von Heinz Tuppinger | Report spam
Hallo!

Ich habe dieses Problem:

Ich holen ein DataSet in .NET über OLEDB aus einer FoxPro Tabelle mit .NET
DataAdapter wobei ein Integer/autoinc feld (EPOSID) besteht, welches von dem
insert commands nicht befüllt wird! (überlasse ich der FoxPro Datenbank)

Nach dem Holen des Datasets ist das Feld nicht als Autoinc gesetzt!
(EPosDataSet.Columns(0).AutoIncrement=false)

Schreibt man nun einen neuen Satz in das Dataset so wird die EPOSID nicht
erhöht.
beim zurückschreiben wird in FoxPro tabelle zwar richtig eine neue EPOSID
erzeugt, aber mit dem Dataset nicht synchronisiert (Dataset EPOSID ist noch
immer 0)

Das führt dann zu einem spàteren Fehler beim Delete dieses neu angelegten
Satzes auf die Datenbank geschrieben wird:
DataSet Delete diesen Satz
Mit Datenbank synchronisieren (Fehler: Der DeleteCommand hat sich auf 0 der
erwarteten 1 Datensàtze ausgewirkt)

Man müsste (wie in Foren beschrieben) den OnBeforeInsert-Trigger als
umgehungslösung nutzen um wàhrend des InsertCommands die EPOSID der FoxPro
Tabelle wieder in den DataSet zurückzuschreiben!

gibt es da keine andere lösung? Vielleicht neueren FoxPro Provider der das
kann!
SQLServer kann das nàmlich schon!

Setzt man nach dem Holen des Datasets das feld auf Autoinc
(EPosDataSet.Columns(0).AutoIncrement=true)
beginnt der Dataset bei neuen Zeilen mit 0 und foxpro schreibt beim
writeback wieder andere eposid's rein -> gleiches problem wie oben!

Danke für die Mühe im Voraus!
 

Lesen sie die antworten

#1 Dimitri Alberto
03/10/2008 - 20:29 | Warnen spam
"Heinz Tuppinger" schrieb

Setzt man nach dem Holen des Datasets das feld auf Autoinc
(EPosDataSet.Columns(0).AutoIncrement=true)
beginnt der Dataset bei neuen Zeilen mit 0 und foxpro schreibt beim
writeback wieder andere eposid's rein -> gleiches problem wie oben!





http://msdn.microsoft.com/de-de/lib...ement.aspx

dann setz doch die anderen werte auch noch wie AutoIncrementSeed

Ähnliche fragen