<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>FreeTDS API: Remote Procedure functions</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> </head><body> <!-- Generated by Doxygen 1.4.1 --> <div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Class List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Class Members</a> | <a class="qindex" href="globals.html">File Members</a> | <a class="qindex" href="pages.html">Related Pages</a></div> <h1>Remote Procedure functions<br> <small> [<a class="el" href="a00274.html">The db-lib API</a>]</small> </h1>Functions used with stored procedures. <a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0"> <tr><td></td></tr> <tr><td colspan="2"><br><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBBOOL </td><td class="memItemRight" valign="bottom"><a class="el" href="a00276.html#ga0">dbhasretstat</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Determine if query generated a return status number. <a href="#ga0"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00276.html#ga2">dbnumrets</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get count of output parameters filled by a stored procedure. <a href="#ga2"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">BYTE * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00276.html#ga4">dbretdata</a> (DBPROCESS *dbproc, int retnum)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get value of an output parameter filled by a stored procedure. <a href="#ga4"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00276.html#ga5">dbretlen</a> (DBPROCESS *dbproc, int retnum)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get size of an output parameter filled by a stored procedure. <a href="#ga5"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00276.html#ga3">dbretname</a> (DBPROCESS *dbproc, int retnum)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get name of an output parameter filled by a stored procedure. <a href="#ga3"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">DBINT </td><td class="memItemRight" valign="bottom"><a class="el" href="a00276.html#ga1">dbretstatus</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Fetch status value returned by query or remote procedure call. <a href="#ga1"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00276.html#ga6">dbrettype</a> (DBPROCESS *dbproc, int retnum)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Get datatype of a stored procedure's return parameter. <a href="#ga6"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00276.html#ga7">dbrpcinit</a> (DBPROCESS *dbproc, char *rpcname, DBSMALLINT options)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Initialize a remote procedure call. <a href="#ga7"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00276.html#ga8">dbrpcparam</a> (DBPROCESS *dbproc, char *paramname, BYTE status, int type, DBINT maxlen, DBINT datalen, BYTE *value)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Add a parameter to a remote procedure call. <a href="#ga8"></a><br></td></tr> <tr><td class="memItemLeft" nowrap align="right" valign="top">RETCODE </td><td class="memItemRight" valign="bottom"><a class="el" href="a00276.html#ga9">dbrpcsend</a> (DBPROCESS *dbproc)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Execute the procedure and free associated memory. <a href="#ga9"></a><br></td></tr> </table> <hr><a name="_details"></a><h2>Detailed Description</h2> Functions used with stored procedures. <p> Especially useful for OUTPUT parameters, because modern Microsoft servers do not return output parameter data to the client unless the procedure was invoked with <a class="el" href="a00276.html#ga9">dbrpcsend()</a>. <hr><h2>Function Documentation</h2> <a class="anchor" name="ga0" doxytag="dblib.c::dbhasretstat"></a><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">DBBOOL dbhasretstat </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">DBPROCESS * </td> <td class="mdname1" valign="top" nowrap> <em>dbproc</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Determine if query generated a return status number. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dbproc</em> </td><td>contains all information needed by db-lib to manage communications with the server. </td></tr> </table> </dl> <dl compact><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>TRUE</em> </td><td>fetch return status with <a class="el" href="a00276.html#ga1">dbretstatus()</a>. </td></tr> <tr><td valign="top"></td><td valign="top"><em>FALSE</em> </td><td>no return status. </td></tr> </table> </dl> <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00275.html#ga16">dbnextrow()</a>, <a class="el" href="a00275.html#ga10">dbresults()</a>, <a class="el" href="a00276.html#ga4">dbretdata()</a>, <a class="el" href="a00276.html#ga1">dbretstatus()</a>, <a class="el" href="a00276.html#ga7">dbrpcinit()</a>, <a class="el" href="a00276.html#ga8">dbrpcparam()</a>, <a class="el" href="a00276.html#ga9">dbrpcsend()</a>. </dd></dl> </td> </tr> </table> <a class="anchor" name="ga2" doxytag="dblib.c::dbnumrets"></a><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">int dbnumrets </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">DBPROCESS * </td> <td class="mdname1" valign="top" nowrap> <em>dbproc</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Get count of output parameters filled by a stored procedure. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dbproc</em> </td><td>contains all information needed by db-lib to manage communications with the server. </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>How many, possibly zero. </dd></dl> <dl compact><dt><b>Remarks:</b></dt><dd>This name sounds funny. </dd></dl> <dl compact><dt><b>See also:</b></dt><dd></dd></dl> </td> </tr> </table> <a class="anchor" name="ga4" doxytag="dblib.c::dbretdata"></a><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">BYTE* dbretdata </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">DBPROCESS * </td> <td class="mdname" nowrap> <em>dbproc</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>retnum</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Get value of an output parameter filled by a stored procedure. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dbproc</em> </td><td>contains all information needed by db-lib to manage communications with the server. </td></tr> <tr><td valign="top"></td><td valign="top"><em>retnum</em> </td><td>Nth parameter between <code>1</code> and the return value from <code><a class="el" href="a00276.html#ga2">dbnumrets()</a></code>. </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>Address of a return parameter value, or <code>NULL</code> if no such <em>retnum</em>. </dd></dl> <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00275.html#ga16">dbnextrow()</a>, <a class="el" href="a00276.html#ga2">dbnumrets()</a>, <a class="el" href="a00275.html#ga10">dbresults()</a>, <a class="el" href="a00276.html#ga5">dbretlen()</a>, <a class="el" href="a00276.html#ga3">dbretname()</a>, <a class="el" href="a00276.html#ga6">dbrettype()</a>, <a class="el" href="a00276.html#ga7">dbrpcinit()</a>, <a class="el" href="a00276.html#ga8">dbrpcparam()</a>. </dd></dl> <dl compact><dt><b><a class="el" href="todo.html#_todo000019">Todo:</a></b></dt><dd>Handle blobs. </dd></dl> </td> </tr> </table> <a class="anchor" name="ga5" doxytag="dblib.c::dbretlen"></a><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">int dbretlen </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">DBPROCESS * </td> <td class="mdname" nowrap> <em>dbproc</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>retnum</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Get size of an output parameter filled by a stored procedure. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dbproc</em> </td><td>contains all information needed by db-lib to manage communications with the server. </td></tr> <tr><td valign="top"></td><td valign="top"><em>retnum</em> </td><td>Nth parameter between <code>1</code> and the return value from <code><a class="el" href="a00276.html#ga2">dbnumrets()</a></code>. </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>Size of a return parameter value, or <code>NULL</code> if no such <em>retnum</em>. </dd></dl> <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00275.html#ga16">dbnextrow()</a>, <a class="el" href="a00276.html#ga2">dbnumrets()</a>, <a class="el" href="a00275.html#ga10">dbresults()</a>, <a class="el" href="a00276.html#ga4">dbretdata()</a>, <a class="el" href="a00276.html#ga3">dbretname()</a>, <a class="el" href="a00276.html#ga6">dbrettype()</a>, <a class="el" href="a00276.html#ga7">dbrpcinit()</a>, <a class="el" href="a00276.html#ga8">dbrpcparam()</a>. </dd></dl> </td> </tr> </table> <a class="anchor" name="ga3" doxytag="dblib.c::dbretname"></a><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">char* dbretname </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">DBPROCESS * </td> <td class="mdname" nowrap> <em>dbproc</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>retnum</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Get name of an output parameter filled by a stored procedure. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dbproc</em> </td><td>contains all information needed by db-lib to manage communications with the server. </td></tr> <tr><td valign="top"></td><td valign="top"><em>retnum</em> </td><td>Nth parameter between <code>1</code> and the return value from <code><a class="el" href="a00276.html#ga2">dbnumrets()</a></code>. </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>ASCII null-terminated string, <code>NULL</code> if no such <em>retnum</em>. </dd></dl> <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00275.html#ga16">dbnextrow()</a>, <a class="el" href="a00276.html#ga2">dbnumrets()</a>, <a class="el" href="a00275.html#ga10">dbresults()</a>, <a class="el" href="a00276.html#ga4">dbretdata()</a>, <a class="el" href="a00276.html#ga5">dbretlen()</a>, <a class="el" href="a00276.html#ga6">dbrettype()</a>, <a class="el" href="a00276.html#ga7">dbrpcinit()</a>, <a class="el" href="a00276.html#ga8">dbrpcparam()</a>. </dd></dl> </td> </tr> </table> <a class="anchor" name="ga1" doxytag="dblib.c::dbretstatus"></a><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">DBINT dbretstatus </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">DBPROCESS * </td> <td class="mdname1" valign="top" nowrap> <em>dbproc</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Fetch status value returned by query or remote procedure call. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dbproc</em> </td><td>contains all information needed by db-lib to manage communications with the server. </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>return value </dd></dl> <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00276.html#ga0">dbhasretstat()</a>, <a class="el" href="a00275.html#ga16">dbnextrow()</a>, <a class="el" href="a00275.html#ga10">dbresults()</a>, <a class="el" href="a00276.html#ga4">dbretdata()</a>, <a class="el" href="a00276.html#ga7">dbrpcinit()</a>, <a class="el" href="a00276.html#ga8">dbrpcparam()</a>, <a class="el" href="a00276.html#ga9">dbrpcsend()</a>. </dd></dl> </td> </tr> </table> <a class="anchor" name="ga6" doxytag="dblib.c::dbrettype"></a><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">int dbrettype </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">DBPROCESS * </td> <td class="mdname" nowrap> <em>dbproc</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>retnum</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Get datatype of a stored procedure's return parameter. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dbproc</em> </td><td>contains all information needed by db-lib to manage communications with the server. </td></tr> <tr><td valign="top"></td><td valign="top"><em>retnum</em> </td><td>Nth return parameter, between 1 and <code><a class="el" href="a00276.html#ga2">dbnumrets()</a></code>. </td></tr> </table> </dl> <dl compact><dt><b>Returns:</b></dt><dd>SYB* datatype token, or -1 if <em>retnum</em> is out of range. </dd></dl> <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00275.html#ga16">dbnextrow()</a>, <a class="el" href="a00276.html#ga2">dbnumrets()</a>, <a class="el" href="a00275.html#ga77">dbprtype()</a>, <a class="el" href="a00275.html#ga10">dbresults()</a>, <a class="el" href="a00276.html#ga4">dbretdata()</a>, <a class="el" href="a00276.html#ga5">dbretlen()</a>, <a class="el" href="a00276.html#ga3">dbretname()</a>, <a class="el" href="a00276.html#ga7">dbrpcinit()</a>, <a class="el" href="a00276.html#ga8">dbrpcparam()</a>. </dd></dl> </td> </tr> </table> <a class="anchor" name="ga7" doxytag="rpc.c::dbrpcinit"></a><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">RETCODE dbrpcinit </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">DBPROCESS * </td> <td class="mdname" nowrap> <em>dbproc</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>char * </td> <td class="mdname" nowrap> <em>rpcname</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>DBSMALLINT </td> <td class="mdname" nowrap> <em>options</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Initialize a remote procedure call. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dbproc</em> </td><td>contains all information needed by db-lib to manage communications with the server. </td></tr> <tr><td valign="top"></td><td valign="top"><em>rpcname</em> </td><td>name of the stored procedure to be run. </td></tr> <tr><td valign="top"></td><td valign="top"><em>options</em> </td><td>Only supported option would be DBRPCRECOMPILE, which causes the stored procedure to be recompiled before executing. </td></tr> </table> </dl> <dl compact><dt><b>Remarks:</b></dt><dd>The RPC functions are the only way to get back OUTPUT parameter data with db-lib from modern Microsoft servers. </dd></dl> <dl compact><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>SUCCEED</em> </td><td>normal. </td></tr> <tr><td valign="top"></td><td valign="top"><em>FAIL</em> </td><td>on error </td></tr> </table> </dl> <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00276.html#ga8">dbrpcparam()</a>, <a class="el" href="a00276.html#ga9">dbrpcsend()</a> </dd></dl> </td> </tr> </table> <a class="anchor" name="ga8" doxytag="rpc.c::dbrpcparam"></a><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">RETCODE dbrpcparam </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">DBPROCESS * </td> <td class="mdname" nowrap> <em>dbproc</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>char * </td> <td class="mdname" nowrap> <em>paramname</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>BYTE </td> <td class="mdname" nowrap> <em>status</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>int </td> <td class="mdname" nowrap> <em>type</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>DBINT </td> <td class="mdname" nowrap> <em>maxlen</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>DBINT </td> <td class="mdname" nowrap> <em>datalen</em>, </td> </tr> <tr> <td class="md" nowrap align="right"></td> <td class="md"></td> <td class="md" nowrap>BYTE * </td> <td class="mdname" nowrap> <em>value</em></td> </tr> <tr> <td class="md"></td> <td class="md">) </td> <td class="md" colspan="2"></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Add a parameter to a remote procedure call. <p> Call between <a class="el" href="a00276.html#ga7">dbrpcinit()</a> and <a class="el" href="a00276.html#ga9">dbrpcsend()</a> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dbproc</em> </td><td>contains all information needed by db-lib to manage communications with the server. </td></tr> <tr><td valign="top"></td><td valign="top"><em>paramname</em> </td><td>literal name of the parameter, according to the stored procedure (starts with '@'). Optional. If not used, parameters will be passed in order instead of by name. </td></tr> <tr><td valign="top"></td><td valign="top"><em>status</em> </td><td>must be DBRPCRETURN, if this parameter is a return parameter, else 0. </td></tr> <tr><td valign="top"></td><td valign="top"><em>type</em> </td><td>datatype of the value parameter e.g., SYBINT4, SYBCHAR. </td></tr> <tr><td valign="top"></td><td valign="top"><em>maxlen</em> </td><td>Maximum output size of the parameter's value to be returned by the stored procedure, usually the size of your host variable. Fixed-length datatypes take -1 (NULL or not). Non-OUTPUT parameters also use -1. Use 0 to send a NULL value for a variable length datatype. </td></tr> <tr><td valign="top"></td><td valign="top"><em>datalen</em> </td><td>For variable-length datatypes, the byte size of the data to be sent, exclusive of any null terminator. For fixed-length datatypes use -1. To send a NULL value, use 0. </td></tr> <tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>Address of your host variable. </td></tr> </table> </dl> <dl compact><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>SUCCEED</em> </td><td>normal. </td></tr> <tr><td valign="top"></td><td valign="top"><em>FAIL</em> </td><td>on error </td></tr> </table> </dl> <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00276.html#ga7">dbrpcinit()</a>, <a class="el" href="a00276.html#ga9">dbrpcsend()</a> </dd></dl> </td> </tr> </table> <a class="anchor" name="ga9" doxytag="rpc.c::dbrpcsend"></a><p> <table class="mdTable" cellpadding="2" cellspacing="0"> <tr> <td class="mdRow"> <table cellpadding="0" cellspacing="0" border="0"> <tr> <td class="md" nowrap valign="top">RETCODE dbrpcsend </td> <td class="md" valign="top">( </td> <td class="md" nowrap valign="top">DBPROCESS * </td> <td class="mdname1" valign="top" nowrap> <em>dbproc</em> </td> <td class="md" valign="top"> ) </td> <td class="md" nowrap></td> </tr> </table> </td> </tr> </table> <table cellspacing="5" cellpadding="0" border="0"> <tr> <td> </td> <td> <p> Execute the procedure and free associated memory. <p> <dl compact><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>dbproc</em> </td><td>contains all information needed by db-lib to manage communications with the server. </td></tr> </table> </dl> <dl compact><dt><b>Return values:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>SUCCEED</em> </td><td>normal. </td></tr> <tr><td valign="top"></td><td valign="top"><em>FAIL</em> </td><td>on error </td></tr> </table> </dl> <dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00276.html#ga7">dbrpcinit()</a>, <a class="el" href="a00276.html#ga8">dbrpcparam()</a> </dd></dl> </td> </tr> </table> <hr size="1"><address style="align: right;"><small>Generated on Wed May 7 19:22:10 2008 for FreeTDS API by <a href="http://www.doxygen.org/index.html"> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address> </body> </html>