Anmelden

View Full Version : API QDBRTVFD und Rückgabewert FILETYPE



Daechsle
12-01-10, 15:45
Hallo Welt!

Ich möchte mit dem API QDBRTVFD ermitteln, ob der FILETYPE eines Files *DATA oder *SRC ist. Laut Beschreibung des APIs auf der IBM-Homepage steht das im 3. Feld der Rückgabewerte, wobei nur das 5. Bit davon aussagt, ob es *DATA (0) oder *SRC (1) ist.
Wie kann man den Wert eines einzelnen Bits einer Variablen auslesen?
Derzeit rufe ich das API aus einem CL-Programm auf, aber von mir aus kann es auch RPG oder COBOL sein.

Oder gibt es noch irgendeine andere Möglichkeit, diesen Wert, den ich auch mit DSPFD TYPE(*ALL) bekommen könnte, in eine Variable zu bringen? DSPFD TYPE(*ALL) OUTPUT(*OUTFILE) geht leider nicht und mit etwas Anderem als TYPE(*ALL) bekomme ich diesen Wert nicht.

Vielen Dank im Voraus für eure Expertenhilfe!
Roland

B.Hauser
12-01-10, 16:02
Schau Dir mal die Catalog View SYSTABLES in der Bibliothek QSYS2 an.

Die folgende Abfrage sollte entweder ein S (=Source) oder ein D (=Daten) zurückliefern.



Select File_Type
From SysTables
Where System_Table_Schema = 'YOURLIB' and System_Table_Name = 'YOURFILE'


Birgitta

Daechsle
12-01-10, 16:34
GENIAL!
Funktioniert perfekt so, vielen Dank!

Select File_Type
From SysTables
Where System_Table_Schema = 'YOURLIB' and System_Table_Name = 'YOURFILE'

Pikachu
13-01-10, 08:57
Wie kann man den Wert eines einzelnen Bits einer Variablen auslesen?
In RPG geht das mit TESTB (http://publib.boulder.ibm.com/infocenter/iadthelp/v7r0/topic/com.ibm.etools.iseries.langref.doc/c0925086804.htm#HDRZZTESTB).

Pikachu
13-01-10, 09:01
Oder im CL-Programm mit DSPFD FILE(Bibliothek/Datei) TYPE(*BASATR) OUTPUT(*OUTFILE) OUTFILE(Ausgabedatei) und in der Ausgabedatei dann das Feld ATDTAT.

Fuerchau
13-01-10, 10:35
Oder einfach

DCL &TYPE *CHAR 5
RTVMBRD ... FILETYPE(&TYPE)

&TYPE = *DATA bzw. *SRC