Hallo,
in einer Stored Procedure soll bei Bedarf ein Datensatz eingefügt werden. Beim Test in IBConsole (IB 7.5) erhalte ich folgende Fehlermeldung:
<i>validation error for column ID value "*** null ***"</i>
Diesen Fehler kann ich mir nicht erklären:
** Das Feld ID ist per Domain als 'Default 0 not null' deklariert.
** In den Eigenschaften der Tabelle wird dies bestätigt.
** Durch die SP wird der Variablen Neue_ID auf jeden Fall ein Wert zugewiesen, wie folgender Quelltext-Auszug zeigt:
---------------------------
SELECT Zahl2
FROM Einstellungen
WHERE Bezeichnung = 'Programm'
INTO :i1;
IF ( i1 = 0 )
THEN d1 = '31.12.2999';
ELSE BEGIN
IF ( i1 IS NULL)
THEN i1 = 30;
d1 = CAST('NOW' AS DATE) + i1;
END
/* gewuenschte ID holen
IF ( Nr IS NULL )
THEN Neue_ID = GEN_ID( Nutzer_id, 1 );
ELSE Neue_ID = :Nr;
/* Datensatz speichern */
INSERT INTO Nutzer
( ID, Bezeichnung, Passwort_Geltung )
Values ( :Neue_ID, :Name, :d1 );
Inhalt = :Name || ' neu aufgenommen';
--------------------------
Was kann hier los sein?
<b>Nachtrag</b> Kann es sein, dass IBConsole die Default-Werte nicht automatisch setzt? Diesen Eindruck habe ich, wenn ich einen Datensatz im DataGrid einer Tabelle manuell speichere.
Danke für Tipps!
<b>Im Übrigen wünsche ich ein gesundes Jahr 2006.</b>
Jürgen
in einer Stored Procedure soll bei Bedarf ein Datensatz eingefügt werden. Beim Test in IBConsole (IB 7.5) erhalte ich folgende Fehlermeldung:
<i>validation error for column ID value "*** null ***"</i>
Diesen Fehler kann ich mir nicht erklären:
** Das Feld ID ist per Domain als 'Default 0 not null' deklariert.
** In den Eigenschaften der Tabelle wird dies bestätigt.
** Durch die SP wird der Variablen Neue_ID auf jeden Fall ein Wert zugewiesen, wie folgender Quelltext-Auszug zeigt:
---------------------------
SELECT Zahl2
FROM Einstellungen
WHERE Bezeichnung = 'Programm'
INTO :i1;
IF ( i1 = 0 )
THEN d1 = '31.12.2999';
ELSE BEGIN
IF ( i1 IS NULL)
THEN i1 = 30;
d1 = CAST('NOW' AS DATE) + i1;
END
/* gewuenschte ID holen
IF ( Nr IS NULL )
THEN Neue_ID = GEN_ID( Nutzer_id, 1 );
ELSE Neue_ID = :Nr;
/* Datensatz speichern */
INSERT INTO Nutzer
( ID, Bezeichnung, Passwort_Geltung )
Values ( :Neue_ID, :Name, :d1 );
Inhalt = :Name || ' neu aufgenommen';
--------------------------
Was kann hier los sein?
<b>Nachtrag</b> Kann es sein, dass IBConsole die Default-Werte nicht automatisch setzt? Diesen Eindruck habe ich, wenn ich einen Datensatz im DataGrid einer Tabelle manuell speichere.
Danke für Tipps!
<b>Im Übrigen wünsche ich ein gesundes Jahr 2006.</b>
Jürgen
Comment