ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
1684
1684
EMPFEHLEN
-
Hallo!
Wie schon der Titel verrät, habe ich ein Problem mit dem Update einer DataTable. Diese stammt ursprünglich aus einer Paradox-Datenbank, welche nun aktualisiert werden soll. Es wurden lediglich neue Zeilen eingefügt. Keine Änderungen oder Löschungen.
Folgender Code:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Public Shared Function DBAktualisieren(ByVal DBPfad As String, ByVal Datenbankname As String, ByVal geänderteDT As DataTable) As Boolean Dim cnn As OleDb.OleDbConnection = Nothing Dim command As OleDb.OleDbCommand Dim Adapter As OleDb.OleDbDataAdapter Dim combuilder As OleDb.OleDbCommandBuilder Try cnn = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBPfad & ";Extended Properties=Paradox 5.x;") cnn.Open() Command = New OleDb.OleDbCommand("SELECT * FROM " & Datenbankname, cnn) Adapter = New OleDb.OleDbDataAdapter(Command) combuilder = New OleDb.OleDbCommandBuilder(Adapter) [COLOR="Red"]Console.WriteLine(combuilder.GetInsertCommand()) [/COLOR] <-- Testzeile! Aber schon hier tritt der Fehler auf! Adapter.Update(geänderteDT) Return True Catch ex As Exception Console.WriteLine(ex.Message) Log(ex.Message) Return False Finally Adapter.Dispose() combuilder = Nothing cnn.Close() End Try End Function
In der markierten Zeile erhalte ich folgenden Fehler:
Kann mir jemand sagen, was das bedeutet und was ich tun kann?Dynamische SQL-Generierung wird für einen SelectCommand, der keine Basistabelleninformationen zurückgibt, nicht unterstützt.
Danke vorab.
MasterDSWenn am Anfang alles schief geht, nenne es Version 1.0!
----
REALITY.SYS is corrupt. Reboot universe? (y/n)
-
Probier mal:
Code :1
SELECT feld1, feld2, feld3 FROM ....
-
Hallo Norbert! Danke für den Tipp, hat aber leider nicht funktioniert.
Immernoch:Wenn am Anfang alles schief geht, nenne es Version 1.0!
----
REALITY.SYS is corrupt. Reboot universe? (y/n)
-
Also ich habe jetzt noch etwas anderes Probiert und bin dem Problem glaube ich etwas näher gekommen.
Ich habe ausprobiert, ob ich mit einfachen INSERT Statements und anschliessendem "ExecuteNonQuery" weiter komme. Da allerdings erhalte ich die Meldung:
Jetzt habe ich über google herausgefunden, dass dies am Primärschlüssel liegen kann, sofern keiner da ist! Und siehe da... In der Datenbank ist kein Primärschlüssel.OleDbException: Operation muss eine aktualisierbare Abfrage verwenden
Wie bekomme ich denn jetzt die Daten in die Datenbank, ohne einen Primärschlüssel zu definieren? Ich vermute mal, dass das auch die Ursache beim Commandbuilder war/ist.
Jemand eine Idee?Wenn am Anfang alles schief geht, nenne es Version 1.0!
----
REALITY.SYS is corrupt. Reboot universe? (y/n)
-
Für alle die es Interessiert, das Problem ist behoben/umgangen.
Die ExecuteNonQuery Statements lassen sich nun ausführen. Problem war, dass ich aus Sicherheit die DB vorab in ein anderes Verzeichnis kopiert habe. Allerdings NUR die DB. Nicht die entsprechenden Index-Dateien. So konnte die DB nicht aktualisiert werden. Was immer noch nicht geht, ist die Sache mit dem Commandbuilder. Aber da gehe ich nun halt den umständlichen Weg über einzelne Inserts und Updates. Geht auch, wenn auch nicht soooo ultra performant.
Trotzdem vielen Dank an diejenigen, die sich mit mir den Kopf zerbrochen haben.
Schönen Tag noch!
Wenn am Anfang alles schief geht, nenne es Version 1.0!
----
REALITY.SYS is corrupt. Reboot universe? (y/n)
Ähnliche Themen
-
Fehler beim Update XP Home TO XP Prof
Von DiWei im Forum Microsoft WindowsAntworten: 7Letzter Beitrag: 14.04.06, 09:47 -
fehler bei tutorials ? fehler beim löschen einer zeile aus einer txt
Von -GS-Master im Forum PHPAntworten: 5Letzter Beitrag: 20.02.06, 19:36 -
MySql - Fehler beim update!
Von Seven Secrets im Forum PHPAntworten: 5Letzter Beitrag: 03.12.05, 19:45 -
Fehler beim MySql Update
Von Fxice im Forum PHPAntworten: 6Letzter Beitrag: 25.03.05, 19:42 -
[c++] fehler beim linken seit update von VC++
Von Mafutrct im Forum C/C++Antworten: 0Letzter Beitrag: 11.02.05, 21:51





Zitieren
Login





