Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 71d40963b505df4524269198e237b3e3 > files > 665

virtuoso-opensource-doc-6.1.4-2.fc14.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
 <head profile="http://internetalchemy.org/2003/02/profile">
  <link rel="foaf" type="application/rdf+xml" title="FOAF" href="http://www.openlinksw.com/dataspace/uda/about.rdf" />
  <link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
  <meta name="dc.title" content="Function: vd_remote_proc_wrapper - Virtuoso Functions Guide" />
  <meta name="dc.subject" content="Function: vd_remote_proc_wrapper - Virtuoso Functions Guide" />
  <meta name="dc.creator" content="OpenLink Software Documentation Team ;&#10;" />
  <meta name="dc.copyright" content="OpenLink Software, 1999 - 2009" />
  <link rel="top" href="index.html" title="OpenLink Virtuoso Universal Server: Documentation" />
  <link rel="search" href="/doc/adv_search.vspx" title="Search OpenLink Virtuoso Universal Server: Documentation" />
  <link rel="parent" href="functions.html" title="Chapter Contents" />
  <link rel="prev" href="appendixa.html" title="Appendix" />
  <link rel="next" href="functions.html#.html" title="" />
  <link rel="shortcut icon" href="../images/misc/favicon.ico" type="image/x-icon" />
  <link rel="stylesheet" type="text/css" href="doc.css" />
  <link rel="stylesheet" type="text/css" href="/doc/translation.css" />
  <title>Function: vd_remote_proc_wrapper - Virtuoso Functions Guide</title>
  <meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8" />
  <meta name="author" content="OpenLink Software Documentation Team ;&#10;" />
  <meta name="copyright" content="OpenLink Software, 1999 - 2009" />
  <meta name="keywords" content="" />
  <meta name="GENERATOR" content="OpenLink XSLT Team" />
 </head>
 <body>
  <div id="header">
    <a name="fn_vd_remote_proc_wrapper" />
    <img src="../images/misc/logo.jpg" alt="" />
    <h1>22. Virtuoso Functions Guide - vd_remote_proc_wrapper</h1>
  </div>
  <div id="navbartop">
   <div>
      <a class="link" href="functions.html">Chapter Contents</a> | <a class="link" href="fn_vd_remote_data_source.html" title="vd_remote_data_source">Prev</a> | <a class="link" href="fn_vd_remote_table.html" title="vd_remote_table">Next</a>
   </div>
  </div>
  <div id="currenttoc">
   <form method="post" action="/doc/adv_search.vspx">
    <div class="search">Keyword Search: <br />
        <input type="text" name="q" /> <input type="submit" name="go" value="Go" />
    </div>
   </form>
   <div>
      <a href="http://www.openlinksw.com/">www.openlinksw.com</a>
   </div>
   <div>
      <a href="http://docs.openlinksw.com/">docs.openlinksw.com</a>
   </div>
    <br />
   <div>
      <a href="index.html">Book Home</a>
   </div>
    <br />
   <div>
      <a href="contents.html">Contents</a>
   </div>
   <div>
      <a href="preface.html">Preface</a>
   </div>
    <br />
   <div>
      <a class="selected" href="functions.html">Virtuoso Functions Guide</a>
   </div>
    <br />
   <div>
      <a href="functions.html#admin">Administration</a>
   </div>
   <div>
      <a href="functions.html#aggr">Aggregate Functions</a>
   </div>
   <div>
      <a href="functions.html#array">Array Manipulation</a>
   </div>
   <div>
      <a href="functions.html#bpel">BPEL APIs</a>
   </div>
   <div>
      <a href="functions.html#backup">Backup</a>
   </div>
   <div>
      <a href="functions.html#compression">Compression</a>
   </div>
   <div>
      <a href="functions.html#cursors">Cursor</a>
   </div>
   <div>
      <a href="functions.html#time">Date &amp; Time Manipulation</a>
   </div>
   <div>
      <a href="functions.html#debug">Debug</a>
   </div>
   <div>
      <a href="functions.html#dict">Dictionary Manipulation</a>
   </div>
   <div>
      <a href="functions.html#encoding">Encoding &amp; Decoding</a>
   </div>
   <div>
      <a href="functions.html#file">File Manipulation</a>
   </div>
   <div>
      <a href="functions.html#ft">Free Text</a>
   </div>
   <div>
      <a href="functions.html#hash">Hashing / Cryptographic</a>
   </div>
   <div>
      <a href="functions.html#ldap">LDAP</a>
   </div>
   <div>
      <a href="functions.html#localization">Locale</a>
   </div>
   <div>
      <a href="functions.html#mail">Mail</a>
   </div>
   <div>
      <a href="functions.html#misc">Miscellaneous</a>
   </div>
   <div>
      <a href="functions.html#number">Number</a>
   </div>
   <div>
      <a href="functions.html#phrz">Phrases</a>
   </div>
   <div>
      <a href="functions.html#rdf">RDF data</a>
   </div>
   <div>
      <a class="selected" href="functions.html#rmt">Remote SQL Data Source</a>
   </div>
   <div class="selected">
    <div>
        <a href="fn_att_local_name.html">att_local_name</a>
    </div>
    <div>
        <a href="fn_quote_dotted.html">quote_dotted</a>
    </div>
    <div>
        <a href="fn_rclose.html">rclose</a>
    </div>
    <div>
        <a href="fn_rexecute.html">rexecute</a>
    </div>
    <div>
        <a href="fn_rmoreresults.html">rmoreresults</a>
    </div>
    <div>
        <a href="fn_rnext.html">rnext</a>
    </div>
    <div>
        <a href="fn_rstmtexec.html">rstmtexec</a>
    </div>
    <div>
        <a href="fn_sql_columns.html">sql_columns</a>
    </div>
    <div>
        <a href="fn_sql_config_data_sources.html">sql_config_data_sour...</a>
    </div>
    <div>
        <a href="fn_sql_data_sources.html">sql_data_sources</a>
    </div>
    <div>
        <a href="fn_sql_driver_connect.html">sql_driver_connect</a>
    </div>
    <div>
        <a href="fn_sql_get_installed_drivers.html">sql_get_installed_dr...</a>
    </div>
    <div>
        <a href="fn_sql_get_private_profile_string.html">sql_get_private_prof...</a>
    </div>
    <div>
        <a href="fn_sql_gettypeinfo.html">sql_gettypeinfo</a>
    </div>
    <div>
        <a href="fn_sql_primary_keys.html">sql_primary_keys</a>
    </div>
    <div>
        <a href="fn_sql_procedures.html">sql_procedures</a>
    </div>
    <div>
        <a href="fn_sql_remove_dsn_from_ini.html">sql_remove_dsn_from_...</a>
    </div>
    <div>
        <a href="fn_sql_special_columns.html">sql_special_columns</a>
    </div>
    <div>
        <a href="fn_sql_statistics.html">sql_statistics</a>
    </div>
    <div>
        <a href="fn_sql_tables.html">sql_tables</a>
    </div>
    <div>
        <a href="fn_sql_transact.html">sql_transact</a>
    </div>
    <div>
        <a href="fn_sql_write_file_dsn.html">sql_write_file_dsn</a>
    </div>
    <div>
        <a href="fn_sql_write_private_profile_string.html">sql_write_private_pr...</a>
    </div>
    <div>
        <a href="fn_vd_remote_data_source.html">vd_remote_data_sourc...</a>
    </div>
    <div>
        <a class="selected" href="fn_vd_remote_proc_wrapper.html">vd_remote_proc_wrapp...</a>
    </div>
    <div>
        <a href="fn_vd_remote_table.html">vd_remote_table</a>
    </div>
    <div>
        <a href="fn_vd_statistics.html">vd_statistics</a>
    </div>
    <div>
        <a href="fn_vdd_disconnect_data_source.html">vdd_disconnect_data_...</a>
    </div>
    <div>
        <a href="fn_vdd_measure_rpc_time.html">vdd_measure_rpc_time</a>
    </div>
   </div>
   <div>
      <a href="functions.html#repl">Replication</a>
   </div>
   <div>
      <a href="functions.html#soap">SOAP</a>
   </div>
   <div>
      <a href="functions.html#sql">SQL</a>
   </div>
   <div>
      <a href="functions.html#string">String</a>
   </div>
   <div>
      <a href="functions.html#txn">Transaction</a>
   </div>
   <div>
      <a href="functions.html#type">Type Mapping</a>
   </div>
   <div>
      <a href="functions.html#uddi">UDDI</a>
   </div>
   <div>
      <a href="functions.html#udt">User Defined Types &amp; The CLR</a>
   </div>
   <div>
      <a href="functions.html#vad">VAD</a>
   </div>
   <div>
      <a href="functions.html#jvmpl">Virtuoso Java PL API</a>
   </div>
   <div>
      <a href="functions.html#bif">Virtuoso Server Extension Interface (VSEI)</a>
   </div>
   <div>
      <a href="functions.html#ws">Web &amp; Internet</a>
   </div>
   <div>
      <a href="functions.html#xml">XML</a>
   </div>
   <div>
      <a href="functions.html#XPATH">XPATH &amp; XQUERY</a>
   </div>
    <br />
   <div>
      <a href="functionidx.html">Functions Index</a>
   </div>
    <br />
  </div>
  <div id="text">
    <h2>vd_remote_proc_wrapper</h2>
    <div class="refpurpose">Creating a PL wrapper for remote procedure execution</div>
    <div class="funcsynopsis">
        <span class="funcdef">varchar <span class="function">vd_remote_proc_wrapper</span>
      </span>
        (<span class="paramdef">in <span class="parameter">dsn</span> varchar</span>, 
        <span class="paramdef">in <span class="parameter">remote_name</span> varchar</span>, 
        <span class="paramdef">in <span class="parameter">local_name</span> varchar</span>, 
        <span class="paramdef">in <span class="parameter">metadata</span> any</span>, 
        <span class="paramdef">out <span class="parameter">status_code</span> varchar</span>, 
        <span class="paramdef">out <span class="parameter">error_message</span> varchar</span>, 
        <span class="paramdef">in <span class="parameter">make_resultset</span> integer</span>, 
        <span class="paramdef">in <span class="parameter">description</span> varchar</span>);
      </div>
  

  
  
  <div class="refsect1">
    <div class="refsect1title">Description</div>
    <p>This is to create a PL stored procedure to execute a Remote Stored Procedures. It returns results as a SQL result set as well as an array(vector) depending of the &#39;make_resultset&#39; flag.
      </p>
  </div>
  <div class="refsect1">
    <div class="refsect1title">Parameters</div>
    <div class="refsect2">
	<span class="refsect2title">dsn – </span>
	the remote datasource name
    </div>
    <div class="refsect2">
	<span class="refsect2title">remote_name – </span>
	name of the remote procedure
    </div>
    <div class="refsect2">
	<span class="refsect2title">local_name – </span>
	name of the PL wrapper to be created locally
    </div>
    <div class="refsect2">
	<span class="refsect2title">metadata – </span>
	A vector of vectors containing a parameters information
	    each of vectors need to have following structure:
	
	    <ul>
          <li>type of parameter - &#39;IN&#39;/&#39;OUT&#39;/&#39;INOUT&#39; </li>
          <li>name of parameter - the name of parameter</li>
          <li>data type - SQL datatype of parameter as string (for example 
		    &#39;VARCHAR&#39;, &#39;INT&#39; etc.)</li>
          <li>SOAP type - a XSD/custom datatype for SOAP/WSDL actions (if not needed, must
		    be empty string ie. &#39;&#39;)</li>
        </ul>
    </div>
    <div class="refsect2">
	<span class="refsect2title">status_code – </span>
	returns SQL status code of the PL wrapper generation
    </div>
    <div class="refsect2">
	<span class="refsect2title">error_message – </span>
	returns the error message if status code is different than 00000
    </div>
    <div class="refsect2">
	<span class="refsect2title">make_resultset – </span>
	A flag 0/1 default 0. If is true (1) the wrapper will be generated to return result set. Otherwise will be generated to return an array.
    </div>
    <div class="refsect2">
	<span class="refsect2title">description – </span>
	The text of a comment to added to the wrapper. It then will be shown as a method 
	    description if the PL wrapper is published as a SOAP method.
	
    </div>
  </div>
  <div class="refsect1">
      <div class="refsect1title">Examples</div>
      <a name="ex_vsp_calculate_digest" />
      <div class="example">
        <div class="exampletitle">Creating a PL wrapper which returns resultset</div>
	  <p>The following example will create a PL wrapper 
	      to invoke the MS SqlServer Stored Procedure &#39;Northwind.dbo.CustOrderHist&#39;
	</p>
	<div>
          <pre class="programlisting">
-- the wrapper creation (fragment of Virtuoso/PL)   
declare state, msg varchar;
vd_remote_proc_wrapper (&#39;Northwind.dbo.CustOrderHist&#39;, &#39;MS.SQL.CustOrderHist&#39;, 
&#39;sql_lite&#39;, vector (vector (&#39;IN&#39;, &#39;_CustomerID&#39;, &#39;VARCHAR&#39;, &#39;&#39;)), state, msg , 1, &#39;This is a test&#39;);
if (state &lt;&gt; &#39;00000&#39;)
  signal (state, msg);


-- PL wrapper source that will be created   
create procedure &quot;MS&quot;.&quot;SQL&quot;.&quot;CustOrderHist&quot; (IN &quot;_CustomerID&quot; VARCHAR) returns any array array
{ 
--PL Wrapper for remote procedure
--##This is a test
--&quot;DSN:sql_lite PROCEDURE:Northwind.dbo.CustOrderHist&quot;
declare dta, mdta any; 
declare params any; 
params := vector (&quot;_CustomerID&quot;); 
set_user_id (&#39;dba&#39;);
rexecute (&#39;sql_lite&#39;, &#39;{call &quot;Northwind&quot;.&quot;dbo&quot;.&quot;CustOrderHist&quot; (?)}&#39;, NULL, NULL, params, 0, mdta, dta); 
exec_result_names(mdta[0]);
declare i, l integer;
i := 0; l := length (dta);
 while(i&lt;l) {
   exec_result(dta[i]);
   i:=i+1;
 }
}

-- result from execution
SQL&gt; &quot;MS&quot;.&quot;SQL&quot;.&quot;CustOrderHist&quot; (&#39;ALFKI&#39;);
ProductName                               Total
VARCHAR NOT NULL                          INTEGER
_______________________________________________________________________________

Aniseed Syrup                             6
Chartreuse verte                          21
Escargots de Bourgogne                    40
Flotemysost                               20
Grandma&#39;s Boysenberry Spread              16
Lakkalikri                                15
Original Frankfurter grne Soe             2
Raclette Courdavault                      15
Rssle Sauerkraut                          17
Spegesild                                 2
Vegie-spread                              20

11 Rows. -- 18 msec.

 
	  </pre>
        </div>
    </div>
  </div>
  <div class="refsect1">
      <div class="refsect1title">See Also</div>
    <p>
      <a href="fn_rexecute.html">rexecute</a>
      <a href="fn_vd_remote_data_source.html">vd_remote_data_source</a>
    </p>
  </div>
</div>
  <div id="footer">
    <div>Copyright© 1999 - 2009 OpenLink Software All rights reserved.</div>
   <div id="validation">
    <a href="http://validator.w3.org/check/referer">
        <img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" />
    </a>
    <a href="http://jigsaw.w3.org/css-validator/">
        <img src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!" height="31" width="88" />
    </a>
   </div>
  </div>
 </body>
</html>