602SQL-Úplná dokumentace Index  

wb_import_from_xml_buffer

PHP

boolean wb_import_from_xml_buffer( resource connection, string dad_ref, string buffer [, array hostvars] )


Parametry

connection
Identifikátor spojení na SQL server získaný získaným voláním wb_connect nebo wb_pconnect.
dad_ref
Odkaz na DAD.
buffer
Textový řetězec s XML dokumentem, který má být naimportován.
hostvars
Pole s popisem proměnných klienta. Nepovinný parametr.


Od verze

8.1, rozšíření v 10.0

Popis

Funkce provede import dat v XML formátu ze zadaného řetězce buffer podle popisu mapování uvedeného v DAD.

Parametr dad_ref může mít dvě podoby. Je-li ve tvaru jméno_objektu uvozené hvězdičkou (tj. *jméno_objektu), hledá se DAD v otevřené aplikaci jako objekt typu přenos, jinak se čte z tohoto parametru.

Vede-li DAD do ODBC zdroje dat (od verze 10), pak spojení na tento ODBC zdroj musí být předem otevřeno pomocí funkce wb_odbc_connect. Vede-li DAD do jiného 602SQL serveru, musí být spojení na tento server předem otevřeno pomocí wb_connect.

Pomocí pole hostvars lze do proměnných klientské PHP aplikace, navázané na určitý element DADu, předat hodnotu. Pokud proměnné nepoužíváte, buď zcela vynechejte parametr hostvars, nebo jako jeho hodnotu uveďte PHP konstantu NULL. Formát popisu klientských proměnných je uveden na samostatné stránce.



Návratová hodnota

V případě úspěchu vrací TRUE, v případě chyby vrací FALSE.

Viz



Příklad

Z 602XML Filleru přijdou do skriptu XML data - vytáhnout některá a podle nich sestavit dotaz, který se pošle zpět filleru jako data:

  include("db.php");
  $xml_data = $GLOBALS["HTTP_RAW_POST_DATA"];  // prijem XML dat metodou POST

 // 1. přečíst ze zaslaných xml dat určité hodnoty do PHP proměnných.
 //    Použije se vhodně navržený importní DAD (do proměnných) a XMLAPI funkce

 $hostvars=array(
    // první proměnná se jmenuje _id_prodejce
    "_id_prodejce" => array(
        // je typu Integer
        "type" => ATT_INT32,
        // je to OUT proměnná
        "out" => TRUE,
        "value" => null
    ),
    // druhá proměnná se jmenuje _datum
    "_datum" => array(
        // je typu Date
        "type" => ATT_DATE,
        // je to OUT proměnná
        "out" => TRUE,
        "value" => null
    ),
 );

  @wb_import_from_XML_buffer($connection, "*prodejce_imp_prom", $xml_data, $hostvars);

  if($hostvars["_id_prodejce"]["value"]==null){        // proměnna se nenaplnila
   echo ' Id nebylo zadano.';                  // vypsat na std. vystup info pro 602XMLFiller
   exit;                                       // nema cenu dal pokracovat
  }
  if($hostvars["_datum"]["value"]==null){              // proměnna se nenaplnila
   echo ' Datum nebylo zadano.';               // vypsat na std. vystup info pro 602XMLFiller
   exit;                                       // nema cenu dal pokracovat
  }

 // echo date("d.m.Y",$hostvars["_datum"]["value"]);  // způsob konverze data do čitelné podoby

 // 2. pomocí klientských proměnných sestavit dotaz na data, která se mají vrátit do 602XMLFilleru

  $psqlstmt = 'SELECT * FROM Prodejci, Prodej WHERE Prodejci.id_prodejce=Prodej.id_prodejce AND id_prodejce=? AND prodej.datum=?' ;
  $psql=wb_psql_prepare($connection,$psqlstmt);
  wb_psql_send_param($psql, 0 /*první parametr*/, $hostvars["_id_prodejce"]["value"] /*hodnota parametru*/);
  wb_psql_send_param($psql, 1 /*druhý parametr*/, $hostvars["_datum"]["value"] /*hodnota parametru*/);
  $res = wb_psql_execute($psql);

  if ($res)  // v $res je číslo kurzoru
  {
    print(wb_export_to_XML_buffer($connection,'*dadexport_prod',$res));       // poslat XML výstup funkce do Filleru
    close($res);                                                              // zavrit kurzor
  }
  else  {
    echo 'Chyba pri otevirani dotazu...';
 }