Anmelden

View Full Version : Datentypen in Paisy



MarkusM
10-03-10, 19:58
Hallo,

ich hoffe, es kann mir jemand helfen. Wir versuchen mittels SQL auf Paisydaten zuzugreifen, bekommen aber z.B. aus der DAI10 im Geburtsdatum nur einen Output mit Sternen, die überstrichen (nicht unterstrichen) sind.

Hat jemand eine Idee, wie wir das hinbekommen?


Gruß

Markus

Khholm
11-03-10, 06:13
das Problem ist einfach, dass Paisy die Daten in einem alphanumerischen Feld führt, die Zahlen hier aber gepackt drin enthalten sind. Das kann man dann am Bildschirm nicht darstellen. Einzige Möglichkeit, die mir einfällt:

Den String in einem Programm korrekt zerlegen und in eine neue Datei schreiben

kh

B.Hauser
11-03-10, 06:18
Zunächst einmal einige Fragen, da ich den Paisy-Lohn nicht kenne:

1. Ist das Feld ein Datum, numerisch, alphanumerisch oder hat das Feld einen eigenen Datentypen?
2. Hast Du Dir mal die Hex-Werte angeschaut? (HEX(DAI10))? Sind dies Werte mit denen Du etwas anfangen kannst?
3. Da es sich um das Geburtsdatum handelt, könnte es sein, dass es aus Gründen des Datenschutzes verschlüsselt ist. In diesem Fall müsste herausgefunden werden, wie es verschlüsselt wurde und entschlüsselt werden kann.
4. ggf. stimmt die CCSID für die Spalte nicht. In diesem Fall versuche das Feld auf die richtige CCSID zu casten.

Birgitta

WoD
11-03-10, 07:02
Möglichkeiten:


1. je nach Satzart
Feldbeschreibung über Info-Job
bei uns
PINF320 / 321


2. DAI10 über INFO-Job lesen
und Ausgabe als Datei
DAI96X*
dann:
Auswertung über Query / SQL möglich



Dieter Wolff

MarkusM
11-03-10, 08:10
Hallo Birgitta, Hallo Kh, Hallo Dieter Wolff

das mit dem HEX war eine gute Idee. Mir dünkt, dass da noch RPG2-Programmierung vorliegt. So mit intern beschriebenen Dateien und einem langen String, in dem aber auch gepackte Felder drin sind.

Ich weiß noch nicht wie wir die Daten für das Nachfolgesystem rausholen, aber ich vermute, dass es SQL nicht sein wird. Wir müssen da noch schauen, ob wir das über die Infos lösen können. Hab ich aber nicht wirklich Ahnung von.

Danke



Gruß

Markus

Fuerchau
11-03-10, 08:26
Nun, wenn du die Daten per HEX analysieren kannst, ist es auch möglich, diese SQL-Konform umzuwandeln:

dec(substr(hex(MyField), start, len), Stellen, 0)

Wenn Nachkomma definiert sind, dann eben entsprechend dividieren:

dec(substr(hex(MyField), start, len), Stellen, 0) / 100

Wenn negative Werte benötigt werden, kann man das durch CASE lösen:

dec(substr(hex(MyField), start, len), Stellen, 0) / 100
*
case substr(hex(MyField), start+len-1, 1) when 'F' then 1 else -1 end

WoD
11-03-10, 08:37
Ohne zu Wissen,

wann fängt welches Feld an,
was steht da drin

wozu ist die Info gut,


ist das ziemlich aussichtslos

MarkusM
16-03-10, 10:20
Hallo an alle,

der Tipp mit dem Hex war gut. Funktioniert so. Vielen Dank.

Gruß

Markus