-
Hi,
danke für die superschnelle Antwort...
habe nun schonmal alles soweit deklariert und gewandelt, scheitere aber daran dass ich nicht weiss wie ich die SQLVAR Korrekt füllen soll (SQLTYPE, SQLLEN, etc.)
Hast du eventuell ein kleines Beispiel für mich ? (Brauche wirklich nur einfache Alpha & Numerische (gepackt, ungepackt) Variablen.
Herzlichen Dank
Rince
P.s. benutze für Alphawerte SQLTYPE 452, für die gepackten Dezimalen 484
-
SQL schafft die automatische Übersetzung nach Alpha. Wenn du also als Zielfeld immer Alpha verwendest müsste es klappen.
Ansonsten caste doch die numerischen Felder nach Alpha.
Mittels DESCRIBE eines vorbereiteten Selects bzw. DESCRIBE TABLE kannst du die Felder und Typen in einer SQLDA ausgeben lassen, so dass du den dynamischen "char(numfield)" erstellen kannst.
-
Hi,
Entschuldige wenn ich mich vielleicht etwas dumm anstelle, aber ich habe bisher so gar keine Erfahrung mit der SQLDA gehabt.
Ich habe nun folgende Sachen gemacht:
D MYSQLDA S LIKE(SQLDA)
D SQL_NUM C CONST(4)
SQLN = 4 (4 Spalten hat die Testtabelle)
FILE = 'TBLDST' (so heisst die Tabelle)
C/EXEC SQL
C+ INCLUDE SQLDA
C/END-EXEC
C/EXEC SQL
C+ DESCRIBE TABLE :FILE INTO :MYSQLDA USING NAMES
C/END-EXEC
Bereits an dieser Stelle ist der SQLCOD = -804 -> SQLDA ist ungültig.
Was mach ich falsch ?
Wenn ich den INCLUDE Verschiebe habe ich ebenfalls kein besseres Ergebnis.
1000 Dank für die Mühe
Rince
-
Tja, die SQLDA kann man zwar mit INCLUDE einbinden, sie enthält dann allerdings nur 1 Element.
Wenn man mehr Elemente benötigt, muss man diese selber definieren !
D MYSQLDA DS
D MYSQLDAID 8
D MYSQLDABC 10I 0
D MYSQLN 5I 0
D MYSQLD 5I 0
D MYSQLVAR 80 DIM(xx) <== XX = potentielle Anzahl Felder
D MYSQLTYPE 5I 0 OVERLAY(MYSQLVAR:1)
D MYSQLLEN 5I 0 OVERLAY(MYSQLVAR:3)
D MYSQLRES 12 OVERLAY(MYSQLVAR:5)
D MYSQLDATA * OVERLAY(MYSQLVAR:17)
D MYSQLIND * OVERLAY(MYSQLVAR:33)
D MYSQLNAME 30 VARLEN OVERLAY(MYSQLVAR:49)
MYSQLN muss mit der Anzahl der verfügbaren SQLVAR's gefüllt werden.
MYSQLD liefert dann die Anzahl gefüllter Elemente.
-
HI,
jetzt bin ich so circa da wo wir hier im
Forumspost auch schon waren.
SQLCOD -822, Die SQLDATA und SQLIND sind allerdings *NULL bei mir (Liegt wohl an den 4 Feldern ? (Numerisch, Alpha, Alpha, Numerisch)
Soll ich die SQLDATA und SQLIND vorher auf Werte setzen ? Feldgrössen sind ja bekannt, also auch die Menge an Speicher die ich brauche (oder habe ich die Bedeutung der Felder missgeduetet?)
Eins ist auf jeden fall klar, soviel gegoogelt wie heute hab ich lange nicht mehr.
Gruss
Rince
-
Genauso !
Bei USING SQLDA muss beim FETCH natürlich MYSQLDATA auf das Zielfeld verweisen, wo SQL den Inhalt ablegen soll: MYSQLDATA(Index) = %ADDR(ZFeld)
MYSQLIND muss keinen Inhalt haben, aber wenn die Quelle NULL-Inhalt haben kann oder der Cast einen Fehler ausweist (z.B. Zielfeld zu klein), muss MYSQLIND(Index) auf eine "5I 0"-Variable verweisen. Diese enthält:
0 = Alles OK
-1 = NULL-Inhalt
-2 = Fehler bei der Übergabe
-
*jubel* *tanz*
DANKE !!!!!!!!!!!
Habe mir eine Ergebnistabelle gemacht auf deren einzelne Positionen ich verweise als Addresse.
Damit kann ich also jedwede Datei verarbeiten (deren einzelne Felder nicht über 256 Zeichen gehen dürfen (Ergebnis ist 256 A) ) die nicht mehr als 9000 Sätze hat. (DIM 9000)
Das hat mich schonmal entscheidend weitergebracht.
Angenehmen Tag noch, deine gute Tat des Tages ist erledigt 
Gruss
Rince
-
Sind ja doch ganz schöne Einschränkungen.
Warum nur max. 9000 Sätze ?
-
Habe ich jetzt mal einfach so gewählt.
Ginge natürlich auch die DIM(Satzanzahl_der_datei)
Variante.
Schaun mer mal was die Endversion so bekommt... richtig überschaubar sind ja so ewig lange Excel Tabellen nicht, aber wer weiss was wir da so bereitstellen werden.
Gruss
Rince
-
Hallo Rince,
warum denn das Rad neu erfinden ? Es gibt doch schon genug Freeware für Deine Anforderung (z.B. SQL2XLS).
Gruß,
KM
-
Hi,
mehrere Gründe
1. Weil ich das Tool nicht dem User zur verfügung stellen will, aber es auch nicht jedesmal selbst bedienen will (ich will es im Programm einbinden als Externes Serviceprogramm)
2. Weil die Tools die wir bisher im Test hatten mit der ein oder anderen Konstellation bei uns nicht zurecht kamen (IFS, Terminal Server, versch. Excel versionen etc.)
3. Weil ichs gern können würde
Gruss
Rince
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 GraueEminenz in forum NEWSboard Programmierung
Antworten: 1
Letzter Beitrag: 10-07-06, 11:58
-
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
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