PDA

View Full Version : Fehler: SQL0302 Umsetzungsfehler / ado



Asti
29-08-06, 11:06
Hallo,

hat jemand eine Idee?

Beim Zugriff mittels ado (2.6) / VB auf die AS/400 (i5 V5R4) mittels Prepared Command erhalte ich im Zusammenhang mit einem Datumsfeld (BEDAT) immer eine Fehlermeldung.

Statement z.B.:

UPDATE WWDT.BEST SET LOG03 = 'V' WHERE FIRMA = ? AND BESTNR = ? AND BEDAT = '?'

Das Statement lässt sich vorbereiten, dem Parameter (für) BEDAT kann ein Wert zugewiesen werden, aber beim execute erhalte ich immer den Fehler SQL0302 4.

Auch alle Versuche BEDAT zu "casten" oder für den Parameter einen anderen Datentypen zu verwenden schaffen keine Abhilfe.

:confused:

Grüße Andreas Sturm

Fuerchau
29-08-06, 11:09
Mit "BEDAT = '?'" versuchst du das "?" in das Feld zu setzen.

BEDAT = ?

ist die korrekte Syntax.
myCmd(n) = Datum <= n= Nr. des Parameters (0=1.)

Asti
29-08-06, 12:17
... und mir war so, daß es sich um ein Datum handelt und daher die ' erforderlich sind.

Recht herzlichen Dank und schöne Grüße

Andreas Sturm

Fuerchau
29-08-06, 13:24
Das hat mit Datum nichts zu tun.
Das ? steht für Parametermarker, bei embedded SQL entspricht das der Hostvariablen.
Bei dynamischem SQL (und ADO ist dynamisch) muss für jedes ? eine Struktur in SQLDA angelegt werden.
ADO löst das über die Parameters-Auflistung automatisch auf.