602SQL-Úplná dokumentace Index  

wb_export_to_xml_buffer

PHP

mixed wb_export_to_xml_buffer( resource connection, string dad_ref, resource cursor [, 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.
cursor
Identifikátor otevřeného kurzoru, nebo PHP konstanta NULL.
hostvars
Pole s popisem proměnných klienta. Nepovinný parametr.


Od verze

8.1, rozšíření v 10.0

Popis

Funkce provede export dat uvedených v DAD v XML formátu do textového řetězce a tento řetězec je vrácen jako výsledek volání této funkce. V případě analytického DAD je zdroj dat pevně dán popisem v DAD, proto ponechte hodnotu parametru cursor = NULL. V případě syntetického DAD je možno využít popisu v DAD, pak ponechte cursor = NULL, nebo použijte přesměrování na vlastní otevřený kurzor shodné struktury, pak v parametru curs zadejte PHP identifikátor tohoto kurzoru (tj. výsledek volání funkce wb_exec, resp. wb_psql_execute, která otevřela kurzor).

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 definice DAD č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 předat popis proměnných klientské PHP aplikace, které mohou být použity v dotazu uvedeném jako zdroj dat v DAD nebo jako proměnné, navázané na určitý element DADu. 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í string s XML dokumentem, který obsahuje vyexportovaná data, v případě chyby vrací FALSE.

Viz



Příklad

Z 602XML Filleru přidou 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
  }

 // 2. sestavit dotaz na data, která se mají vrátit do 602XMLFilleru

  $sqlstmt = 'SELECT * FROM Prodejci, Prodej WHERE Prodejci.id_prodejce=Prodej.id_prodejce AND id_prodejce='.strval($hostvars["_id_prodejce"]["value"]).' AND prodej.datum='.strval(date("d.m.Y",$hostvars["_datum"]["value"])) ;
  $res = wb_exec($connection,$sqlstmt);
  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...';
 }


Příklad

Přečíst data z MySQL serveru připojeného pomocí ODBC zdroje dat registrovaného jako MySQL test do řetězcové proměnné. Funkce má stejnou syntaxi, pouze musí být předem otevřeno ODBC spojení použité v definici DAD.

  ...
  $odbc_resource=wb_odbc_connect("MySQL test","admin","heslo") or die("MySQL odbc connect failed");
  $dad="*Zakaznici_mysql_analytDAD";
  $resXML = wb_export_to_XML_buffer($connection,$dad,NULL,NULL) or die("export from MySQL to XML failed");
  wb_odbc_disconnect($odbc_resource);
  ...