Anzeige
Archiv - Navigation
152to156
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
152to156
152to156
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

ADODB INSERT oder UPDATE, das ist die Frage

ADODB INSERT oder UPDATE, das ist die Frage
03.09.2002 03:14:08
Christian
Hallo,
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 ??

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: ADODB INSERT oder UPDATE, das ist die Frage
03.09.2002 09:51:40
Kai
Abgesehen davon, dass man vor dem UPDATE/INSERT einen SELECT absetzen kann und sich dann entscheidet wie es weitergeht, gibt es natürlich auch noch diesen Weg:

Einen ADO-recordset mit dem entsprechenden SELECT befüllen.
Falls der Recordcount=0 ist einen ADDNEW machen.
Danach, unabhängig von INSERT/UPDATE die entprechenden Werte in die Felder schreiben.

Hilft das ?

Kai

Re: ADODB INSERT oder UPDATE, das ist die Frage
03.09.2002 12:23:08
Christian
Ja, das ist eine Idee.
Das Problem an den Einzelselects ist einfach das es zu lange dauert.
Also Selectiere ich einfach alles und Prüfe dann lokal ob das Feld bereits existiert oder nicht.

Hab noch eine allgemeine Frage zu Recordsets, aber dafür mache ich einen neuen Thread auf.

Danke

Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige