ich möchte möglichst schnell von einer mittleren Anzahl von Feldern die Daten in eine Datenbank schaffen.
Nun weiß ich vorher nicht, ob der Datensatz bereits existiert, oder nicht. Wenn es ihn schon gibt, dann soll er nur per UPDATE geändert werden, wenn nicht dann per INSERT erstellt.
Wie ist nun die eleganteste Methode rauszufinden ob eine Wert bereits in der Tabelle ist. Eine Insert Anweisung und bei einem Fehler (da Primärschlüssel) eine Update Anweisung ginge, ist aber sehr unsauber, da nach einmaligen Nutzen ja praktisch bis auf wenige Ausnahmen (neue Daten) alle alten Daten Fehler verursachen würden.
Die UPDATE Anweisung einfach auf Verdacht laufen zu lassen, und bei 0 betroffenen Zeilen einen Insert zu machen, geht auch nicht, da leider nur die wirklich geänderten Zeilen gezählt werden, also bei vorhandenen Daten aber keinen Unterschieden eine 0 für die geänderten Zeilen zurück gegeben wird. Und dann ein Insert soll natürlich nicht sein.
Also hier nochmal der Code(gekürzt, normalerweise Arrays vorhanden), und die Frage ist ganz kurz formuliert, wie weiß ich am besten ob UPDATE oder INSERT
Klappt NICHT :
For i = 0 To 50
SQL_Befehl = "UPDATE Produktdaten SET Datum='1999-01-01' WHERE Feld='Einkauf'"
conn.Execute (SQL_Befehl), Affected_Rows
If (Affected_Rows < 1) Then
SQL_Befehl = "INSERT INTO Produktdaten VALUES ('Einkauf',1999-01-01)"
conn.Execute (SQL_Befehl)
End If
Also, wer weiß Rat ??