-
Woran siehst du, daß da Leerzeichen und nicht NULL reingeschrieben wurden?
-
 Zitat von Pikachu
Woran siehst du, daß da Leerzeichen und nicht NULL reingeschrieben wurden?
Bei NULL wird ein '-' angezeigt.
-
Dann prüfe doch mal deine Where-Klausel und das Ergebnis in SQLER3.
Wenn SQLER3 = 0 ist, erfolgte nämlich kein Update und SQLCOD ist auch dann 0 wenn kein Satz gefunden wurde.
-
Das habe ich befürchtet .
Ohne coalesce kannst du beim Lesen eben auch den NULL-Wert feststellen denn die Hostvariable wird auch dann initialisiert.
Wenn ihr (entschuldige) so einen Blödsinn programmiert, warum dann überhaupt NULL-Werte ?
-
 Zitat von Fuerchau
Das habe ich befürchtet  .
Ohne coalesce kannst du beim Lesen eben auch den NULL-Wert feststellen denn die Hostvariable wird auch dann initialisiert.
Wenn ihr (entschuldige) so einen Blödsinn programmiert, warum dann überhaupt NULL-Werte ?
Wir sind erfolgreich von DDS/RPG auf SQL/ILE umgestiegen bzw. sind auch noch dabei. Blödsinn ist meiner Meinung nach, bei DDS zu bleiben ;-).
Zu NULL-Werten: Warum soll ich etwas speichern, wenn nichts da ist? Aber das ist eine andere Diskussion.
Wir schreiben an zig Stellen NULL-Werte weg, überall funktioniert es. Nur hier eben nicht. Wenn die Lösung einfach wäre, hätte ich's nicht posten müssen.
Mir wurde hier schon oft geholfen, auch von Dir.
Deshalb hoffe ich einfach, dass jemand ein ähnliches Phänomen schon einmal hatte.
-
Bin einen kleinen Schritt weiter.
Ich habe noch eine NULLABLE-Spalte in der gleichen Tabelle, Datentyp Timestamp. Für die Spalte habe ich den Update analog gebaut.
Das Ergebnis: Er schreibt 0001-01-01 00:00:00.000000, initialisiert also nur und setzt nicht NULL.
Das passt auch zum vorherigen Fall. Da ist die Spalte char. Dort inititialisiert er also auch nur mit Leerzeichen und setzt nicht NULL.
Jetzt stellt sich aber immer noch die Frage, warum das NULL innerhalb der case-Anweisung ignoriert wird?
-
Und wenn du die gleiche SQL-Anweisung im STRSQL ausführst (natürlich mit den gleichen Werten wie in den Hostvars und der Where...) wird ein NULL geschrieben??
Das klingt für mich schon sehr mystisch.
Führe mal dein Programm im Debug aus und setze einen Breakpoint gleich direkt nach der UPDATE-Anweisung.
Schau dann nach dem Update in der Tabelle nach ob ein NULL drinnen steht. Danach lass das PGM zu ende laufen.
Entweder hast du wirklich noch irgendwo was (Default-Values in der Tabelle, Trigger, andere Programme die zusätzlich ausfgeführt werden etc.) oder das ist ein Bug.
-
Ist vielleicht irgendeine spezielle Compiler-Anweisung oder H-Definition bezüglich NULL-Werten für dieses Programm angegeben?
-
Schonmal danke an alle für's Miträtseln.
RPG können wir denke ich außen vor lassen.
Es wird auch initialisiert bzw. *loval gesetzt statt NULL, wenn ich in der SQL-Konsole des navigators oder auch in einer SQL-Sitzung auf der i5 einen sql-update absetze, z.B.:
Code:
update tabelle
set spalte =
case 1
when 1
then NULL
else 'xx'
end
where ID = 1;
Noch ein Hinweis:
Ein insert mit analoger Syntax funktioniert:
Code:
insert into tabelle (
spalte)
values (case 1
when 1
then NULL
else
'xx'
end );
-
 Zitat von Fuerchau
Dann prüfe doch mal deine Where-Klausel und das Ergebnis in SQLER3.
Wenn SQLER3 = 0 ist, erfolgte nämlich kein Update und SQLCOD ist auch dann 0 wenn kein Satz gefunden wurde.
Alles gute Ideen, aber das Update passiert. In der Tabelle ist eine Spalte "Zeitmarke für Zeilenänderung". Da schreibt die Datenbank automatisch den Timestamp, wenn der Datensatz geändert wurde.
-
Irgendwo muss deine Logik da noch falsch sein. Gibts da vielleicht noch einen Trigger?
-
 Zitat von Fuerchau
Irgendwo muss deine Logik da noch falsch sein. Gibts da vielleicht noch einen Trigger?
Trigger gibt es hier keine, ist eine neue Tabelle ohne zugehörige Objekte.
Similar Threads
-
By Tobse77 in forum NEWSboard Programmierung
Antworten: 12
Letzter Beitrag: 24-09-09, 08:31
-
By Ewald in forum NEWSboard Programmierung
Antworten: 0
Letzter Beitrag: 25-01-07, 07:52
-
By Flo4711 in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 29-09-06, 17:31
-
By deni87991 in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 04-08-06, 10:32
-
By klausgkv in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 08-06-06, 13:47
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks