Anmelden

View Full Version : einzelne Satzlänge in einer DTAQ



Jenne
20-09-12, 11:41
Hallo Kollegen,

ich habe eine DTAQ erstellt mit einer Satzlänge von 500.

Jetzt meine Frage ist die Satzlänge jedes einzelnen Eintrag 500 Stellen lang oder ist diese Länge je nach Datensatz variabel?

Es sieht aus als wenn immer der längste Datensatz herangezogen wird.

Beispiel:

1. Datensatz 100 Stellen (länge 100)
2. Datensatz 200 Stellen (länge 200)
3. Datensatz 50 Stellen (länge 200)

Danke im Voraus für die Hilfe
Jenne

Chris.jan
20-09-12, 12:05
Die Länge kann nur vergrößert werden bis zur maximalen Länge. Verkleinern geht nicht.
Aber eigentlich doch wurscht, oder? Wenn du mit variablen Längen arbeitest, dann setzt man im Normalfall eine Satzformatkennung an die erste Stelle. Ist dann ähnlich wie die Verarbeitung von Dateien mit mehreren Recordformaten.

Jenne
20-09-12, 12:16
Hallo Chris.Jan,

danke für den Hinweis. Aber ich meinte das der 3. Datensatz eigentlich eine Länge von 50 hat. Anscheinend aber in der DTAQ eine Länge von 200.

Sehe ich das richtig oder sind alle Datensätze in der DTAQ variabel. Leider habe ich nicht gefunden wo ich das einstellen kann. Also geh ich davon aus das Variabel immer die Länge des Datensatz ist, bis zu maximale Länge.

Gruß
jenne

Chris.jan
20-09-12, 12:37
Woher kommt denn Die Größe von 200? hast Du die über das API beim auslesen erhalten?

Jenne
20-09-12, 12:43
Hallo Chris.Jan,

wir schreiben in die DTAQ und lesen dann die Satzlänge aus mit API aus und erhalten 200.

Gruß
Jenne

Fuerchau
20-09-12, 13:00
Das ist soweit korrekt.
Da du ja im QSNDDTAQ die Länge mitgibst kannst du beim QRCVDTAQ auch nur diese Länge bekommen.
Platzmäßig wird allerdings immer die max. Länge belegt.

Chris.jan
20-09-12, 13:00
Ist ja auch klar. Die Queue hatte eine ursprüngliche Länge von 100 und wenn du was größeres hinein schreibst muß sie sich vergrößeren. Das klappt bis zur maximalen Länge, die Du anfangs beim erstellen definiert hast. Wenn Du jetzt was mit 50Zeichen hinein schreibst, heißt das ja auch nur, daß Du 50 Zeichen "übergibst" - nicht aber daß Du die Queue wieder verkleinerst.
Das Ganze wird ja wortwörtlich als Warteschlange benutzt, die ALLE Größen auffangen kann. Wenn Die Größe jetzt verkleinerbar wäre, dann würde ja von alten größeren Einträgen etwas abgeschnitten. Das darf natürlich nicht sein. Und selbst wenn kein größerer Eintrag mehr vorhanden wäre, dann müßte man für das verkleinern die Speicherzuordnung komplett reorganisieren - das spricht schon mal gegen das Konzept eines schnellen Puffers.

Jenne
20-09-12, 13:06
Hallo Chris.Jan,

alles klar und Danke für die schnelle Antwort.

Gruß
Jenne