[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jun 2011
    Beiträge
    2

    QDBRTVFD mit XPCML

    Hallo,

    ich hab ein erneutes Problem mit XPCML. Und zwar möchte ich gerne
    zu den Tabellen auf der AS400 die Key-Felder wissen. Dafür habe ich die API QDBRTVFD
    gefunden und folgende XPCML erstellt. Allerdings erhalte ich bei folgendem Aufbau und
    Aufruf keine Daten zurück. Was ist falsch
    bzw. gibt es noch andere APIs, um die Schlüsselfelder von Objekten zu erhalten?

    HTML-Code:
    - <?xml version="1.0" ?>
    - <xpcml version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:noNamespaceSchemaLocation='xpcml.xsd' >
    
    
    - <struct name="FILD0300">
    -	<intParm name="byte_ret"/>
    -   	<intParm name="byte_avail"/>
    -       <shortParm name="max_key_len"/>
    -	<shortParm name="key_count"/>
    - 	<stringParm name="reserved" length="10"/>
    -	<shortParm name="fmt_counts"/>
    
    -       <stringParm name="rec_name" length="10"/>
    -       <stringParm name="res" length="2"/>
    -	<shortParm name="num_Of_Keys"/>
    -       <stringParm name="rese" length="14"/>
    - 	<intParm name="key_info_offeset"/>
    
    
    -    	 <stringParm name="Int_Field_Name" length="10"/>
    -	 <stringParm name="Ext_Field_Name" length="10"/>
    -	 <shortParm name="Data_Type"/>
    -	 <shortParm name="Field_Len"/>
    -	 <shortParm name="Num_Of_Digs"/>
    -	 <shortParm name="Dec_Pos"/>
    -	 <stringParm name="Qdb_Qdbwhkattr_t" length="1"/>
    -	 <shortParm name="Alt_Name_Len"/>
    -	 <stringParm name="Alt_Name" length="30"/>
    -	 <stringParm name="newres" length="1"/>
    -	 <stringParm name="Qdb_Qdbwhkatt1_t" length="1"/>
    -	 <stringParm name="newres2" length="1"/>
    -      </struct>
    
    -<program name="QDBRTVFD" path="/QSYS.lib/QDBRTVFD.pgm">
    -<parameterList>
    -	<arrayOfStructParm name="receiver" passDirection="out" count="1" 
    -              outputSize="receiverLength" struct="FILD0300"/>
    -     	<intParm name="receiverLength" passDirection="in">120</intParm>
    -      <stringParm name="retfilename" passDirection="out" length="20"/>
    -	<stringParm name="formname" passDirection="in" length="8">FILD0300</stringParm>
    -	<stringParm name="filename" passDirection="in" length="20">####################</stringParm>
    -	<stringParm name="recformnam" passDirection="in" length="10">*FIRST    </stringParm>
    -  	<stringParm name="ovrproc" passDirection="in" length="1">0</stringParm>
    -	<stringParm name="system" passDirection="in" length="10">*LCL      </stringParm>
    -	<stringParm name="formtype" passDirection="in" length="10">*INT      </stringParm>
    -	<intParm name="errorCode" passDirection="in">0</intParm>
    	
    -</parameterList>
    -</program>
    
    -</xpcml>
    Ach, und entschuldigt die ganzen Bindestriche, nur war mir nicht ganz klar, wie ich den HTML/XML-Code
    hier reinbringe und Zeilenumbrüche erzwingen kann.
    Vielen Dank

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.700
    Ich denke mal, du hast das komplizierteste API überhaupt gewählt.
    Besonderes Augenmerk ist auf ErrorCode zu legen.
    Auch dieses ist eine Struktur:

    ByteProvided Integer
    BytesAvailable Integer
    ErrorCode CHAR(7)
    Reserved CHAR(1)
    ErrorData CHAR(n)

    Diese Struktur enthält dann ggf. eine CPF-Meldung.

    Das API kann dir aber nur Schlüssel liefern, wenn eine PF überhaupt Schlüssel hat.
    Bei SQL-Tables ist das nämlich nicht der Fall (außer PrimaryConstraint).

    Besser ist es, die Informationen per SQL zu beschaffen.

    Was willst du überhaupt mit den Infos ?
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5.368
    ... zwar schon 'ne Weile her, aber...
    - wie wärs ,mit select ... from QSYS2.SYSKEYCST where...
    - von dem PCML und XPCML lässt man die Finger, das ist Murks!

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

Similar Threads

  1. API "QUSPTRUS" per XPCML nutzen
    By BAStudentin08 in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-11, 08:29
  2. API QDBRTVFD und Rückgabewert FILETYPE
    By Daechsle in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 13-01-10, 10:35

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •