Produkty

Úvodní stránka / Produkty / 602SQL - Komerční rozšíření / Podrobný popis

602SQL - Komerční rozšíření

602SQL

Rozšíření o pokročilé fulltextové funkce a podporu formátu XML umožňující bezproblémový přenos strukturovaných dat v heterogenních prostředích.

 

Programové rozhraní pro práci s XML

Podpora XML, zabudovaná do 602SQL serveru i klientského prostředí, je přístupná nejen přes interaktivní návrháře a nástroje Klientského vývojového prostředí 602SQL, ale také jako sada API funkcí, pomocí nichž lze programovat vlastní aplikace využívající XML formát jako prostředník mezi daty v databázi a XML světem venku.

Import a export dat

XML extenze

Při používání XML funkcí z jazyka SQL musí SQL server před prvním voláním nahrát tzv. extenzi (rozšíření) serveru nazvanou 602xml, z knihovny 602xmlXX.dll pro Windows resp. lib602xmlXX.so pro Linux, kde XX je číslo verze. Extenze nazvaná 602xml se interně nahradí správnou verzí knihovny, takže není třeba při změně verze (a změně jména knihovny) přepisovat zdrojové texty procedur. Na Windows se extenze nahraje obvykle automaticky, na Linuxu je to třeba (na Windows možno) provést ručně pomocí

IF Load_server_extension('602xml') THEN _použij_XML_API ...

Na Linuxu adresář s knihovnou lib602xmlXX.so (standardně je to /usr/lib/602sqlXX) musí být mezi adresáři, z nichž je povoleno volat knihovny!

Podpora XML API v dalších rozhraních k 602SQL serveru

Vývojáři využívající CDK komponenty pro Delphi naleznou obdobné funkce zapouzdřené v komponentě TSQL602XML.

Vývojáři v PHP mohou využít obdobné sady klientských funkcí wb_export_to_XML, wb_export_to_XML_buffer, wb_import_from_XML a wb_import_from_XML_buffer.

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
}

// 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
{
  // poslat XML výstup funkce do Filleru
  print(wb_export_to_XML_buffer($connection,'*dadexport_prod',$res));       
  // zavrit kurzor
  close($res);                                                              
}
else  {
  echo 'Chyba pri otevirani dotazu...';
}

Ochrana osobních údajů