-
SQL-Error
Hallo,
bei einem Embedded-Sql bekomme ich bei Ausführung immer wieder folgende Nachricht im Joblog:
Nachrichten-ID . . . . : SQL0305 Bewertung . . . . . . : 30
Nachrichtenart . . . . : Diagnose
Sendedatum . . . . . . : 16.10.01 Sendezeit . . . . . . : 18:19:24
Nachricht . . . : Anzeigervariable erforderlich.
Ursache. . . . . : Eine Anweisung FETCH, eine eingebettete Anweisung SELECT,
eine Anweisung CALL, SET oder VALUES INTO hatte einen Nullwert zur Folge,
für Host-Variable SUM wurde jedoch keine Anzeigervariable angegeben. Die
relative Position der Host-Variablen in der Klausel INTO oder der
Parameterliste ist 1. Ist der Name der Host-Variablen *N, wurde ein
SQL-Deskriptorbereich (SQLDA) angegeben.
Fehlerbeseitigung: Eine Anzeigervariable angeben und das Programm erneut
vorumwandeln.
Kann damit jemand was anfangen?
Gruss Stefan
-
Hallo Stefan,
Hast Du alle verwendeten Host-Variablen definiert?
Der Fehler tritt erst bei Ausführung auf? Die Compilierung war fehlerfrei?
Handelt es sich um eine statische oder Dynamische Abfrage?
Vielleicht kannst Du einfach die verwendeten SQL-Statements angeben.
Birgitta
-
Hallo Birgitta,
beim Compile gibt es keine Fehler!
Bin nun ein bisschen weiter, es hat wohl irgendwas mit der Variablen zu tun, die ich definiert habe. (Decimal 5 0)
Ursache . . . . .: Für Host-Variable SUM ist eine Umsetzung erforderlich. Die
für die Anweisung FETCH oder die eingebettete Anweisung SELECT abgerufenen
Daten können nicht direkt in die Host-Variablen übertragen werden. Die
Anweisung wurde korrekt ausgeführt. Die Systemleistung wäre jedoch besser,
wenn keine Datenumsetzung erforderlich wäre. Für die Host-Variable ist
aufgrund des Ursachencodes 2 eine Umsetzung erforderlich.- Ursachencode 1 -
Host-Variable SUM ist eine Zeichen- oder eine Grafikzeichenfolge mit einer
Länge, die nicht mit der Länge des abgerufenen Werts übereinstimmt.-
Ursachencode 2 - Host-Variable SUM hat eine numerische Datenart, die nicht
mit der Datenart des abgerufenen Werts übereinstimmt.
Gruss Stefan
-
Hallo Stefan,
Prüfe nochmal folgendes nach:
Die Anzahl und Art der im Select ausgewählten Felder, muss beim Fetch in der gleichen Reihenfolge stehen.
Prüfe weiter, ob nach jedem ausgewählten Select-Feld (ausser beim letzten) ein Komma steht.
Ansonsten gib einfach den SQL-Befehl an.
Tschuess
Birgitta
-
Beim Lesen aus einer Tabelle die "Null-Werte" zuläßt (nicht verwechseln mit 0 oder *BLANK) muß eine Anzeigervariable mit angegeben werden.
Es gilt :
- Anzeigervariable = 0 : Wert ist ok
- Anzeigervariable = -1 : Nullwert
- Anzeigervariable = -2 : Datenfehler
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>
Anzeigervariable erforderlich
[/quote]
Code:
d myIndicator s 5i 0
d myColumn s 32a
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>
...hatte einen Nullwert zur Folge
[/quote]
Code:
c/Exec Sql
c+ select column1
c+ into :myColumn :myIndicator,
c+ ...
c+ from myTable
c/End-Exec
[Dieser Beitrag wurde von rmittag am 23. Oktober 2001 editiert.]
-
Das sieht ganz gut aus!
War bisher noch nicht auf Anzeigervariablen gestoßen, kann damit auch noch nicht viel Anfangen.
Gibt es auch ein Beispiel für das Alt-Rpg?
Gruss
Stefan
-
-
Hallo,
der Klassiker RPG/400.
-
Anzeigervariablen sind auch im RPG/400 möglich (genauso anzugeben wie in obigem Beispiel).
Das Problem der NULL-Werte betrifft "dynamische" Variablen. Dies sind Variablen, die berechnet werden und, wenn kein Ergebnis vorliegt, einen NULL-Wert liefern. Die Unterscheidung liegt darin, dass z.B. "sum(Feldx)" die Summe 0 (dezimal Null) ergeben kann.
Liegen aber aufgrund der Abfrage keine Daten vor, so wird der NULL-Wert übergeben. (Im DDS wird dies mit ALWNULL definiert).
Die Anzeigervariable ist vom Typ dezimal 2,0.
Wenn Sie sicher sind, dass die Summe 0 nicht vorkommen kannn, können sie auch "value(sum(feldx), 0) definieren.
Die Funktion "value" liefert das 2. Argument als Ergebnis, wenn das 1. Argument NULL liefert (als 2. Argument kann auch jeder beliebige andere Wert verwendet werden).
In diesem Fall brauchen Sie keine Anzeiger, da NULL nicht mehr vorkommt.
Similar Threads
-
By christian_lettner in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 16-11-06, 10:15
-
By FNeurieser in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 11-10-06, 14:53
-
By Kaufmann in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 28-06-06, 14:11
-
By loeweadolf in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 01-06-06, 09:43
-
By Fritzchen in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 02-08-05, 08:42
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