Anmelden

View Full Version : SQL Fehler



steven_r
09-05-06, 11:18
Hallo zusammen,

wenn ich dieses Programm laufen lasse bekomme ich immer den SQL Code -901 zurück,
kann mir jemand helfen ich sehe keinen Fehler.
In meiner Datei TESTSTEVE befinden sich zwölf Sätze und im Programm sieht das ganze so aus
C/EXEC SQL
C+ DECLARE C1 CURSOR FOR SELECT
C+ * FROM TESTSTEVE
C/END-EXEC
C* ÖFFNEN DER SQL VERBINDUNG
C/EXEC SQL
C+ OPEN C1
C/END-EXEC
C*
C/EXEC SQL
C+ FETCH NEXT FROM C1 INTO
C+ DATUM, :ZEIT, :CODE, :CODEBEZ, :KUNDE
C/END-EXEC
...............


ich bekomme auch 12 mal die fehlermeldung -901 worann kann das liegen?

Danke im vorraus
mfg
steven_r

Fuerchau
09-05-06, 11:20
Da musst du mal ins Joblog schauen.
Fehlt da ggf. der Doppelpunkt vor dem Feld "Datum" ?
Stimmen die Anzahl der Felder des Fetch zum Select ?

steven_r
09-05-06, 11:25
hallo,

nein der : ist vorhanden und die anzahl stimmt auch überein

mfg
steven_k

Fuerchau
09-05-06, 12:11
SQL0901 deutet meist auf ein defektes Repository hin.
Ein "RCLSTG SELECT(*DBXREF)" behebt das Problem meist.

Schau aber trotzdem mal ins Joblog auf vorherige Nachrichten.

Ggf. wird die Datei nicht aufgezeichnet, dann benötigst du noch als 1. SQL-Anweisung:

c/exec-sql
c+ set option commit=*none
c/end-exec

steven_r
09-05-06, 12:28
Danke für deine Bemühungen,
habe den Fehler gefunden
in den Feld kunde habe ich NULL werte gehabt, hab diese geändert nun funktioniert es.

Nochmals Danke

mfg
steven_r

Fuerchau
09-05-06, 13:38
Für NULL musst du nur Flag-Variablen definieren (Binär 5,0) und beim Fetch angeben:

DATUM, :ZEIT, :CODE, :CODEBEZ, :KUNDE : FLAG

Wichtig: Das Flagfeld wird ohne Komma hinter dem Zielfeld aufgelistet.

Inhalt:
-1 NULL
-2 Datenfehler

steven_r
18-05-06, 12:30
hallo
wenn ich das mit flag mache bekomme ich einen fehler beim compilierern

Anzeigervariable FLAG hat nicht die Art
SMALLINT

ich habe diese Binär derfiniert

mfg
steven_r

Fuerchau
18-05-06, 12:32
Du musst das Feld als "5I 0" bzw "4B 0" definieren.

steven_r
18-05-06, 12:42
danke für die rasche antwort
du bist der beste!!!!!

lg
steven_r