Sophie

Sophie

distrib > Mageia > 1 > i586 > media > core-release > by-pkgid > f0bc842dcf666302badcfd2545f3387c > files > 63

libfreetds0-doc-0.82-12.mga1.i586.rpm

<!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: Conversion</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&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Class&nbsp;List</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Class&nbsp;Members</a> | <a class="qindex" href="globals.html">File&nbsp;Members</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a></div>
<h1>Conversion<br>
<small>
[<a class="el" href="a00294.html">LibTDS API</a>]</small>
</h1>Conversions between datatypes.  
<a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga45" doxytag="convert::binary_to_result"></a>
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>binary_to_result</b>(data, len, cr)&nbsp;&nbsp;&nbsp;binary_to_result(desttype, data, len, cr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga47" doxytag="convert::CASE_ALL_BINARY"></a>
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>CASE_ALL_BINARY</b>&nbsp;&nbsp;&nbsp;SYBBINARY: case SYBVARBINARY: case SYBIMAGE: case XSYBBINARY: case XSYBVARBINARY: case TDS_CONVERT_BINARY</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga46" doxytag="convert::CASE_ALL_CHAR"></a>
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>CASE_ALL_CHAR</b>&nbsp;&nbsp;&nbsp;SYBCHAR: case SYBVARCHAR: case SYBTEXT: case XSYBCHAR: case XSYBVARCHAR</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga43" doxytag="convert::is_monthname"></a>
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>is_monthname</b>(s)&nbsp;&nbsp;&nbsp;(store_monthname(s, NULL) &gt;= 0)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga44" doxytag="convert::string_to_result"></a>
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>string_to_result</b>(s, cr)&nbsp;&nbsp;&nbsp;string_to_result(desttype, s, cr)</td></tr>

<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga19" doxytag="convert::binary_to_result"></a>
static TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#ga19">binary_to_result</a> (int desttype, const void *data, size_t len, CONV_RESULT *cr)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy binary data to to result and return len or TDS_CONVERT_NOMEM. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga14" doxytag="convert::is_alphabetic"></a>
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>is_alphabetic</b> (const char *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga15" doxytag="convert::is_ampm"></a>
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>is_ampm</b> (const char *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga37" doxytag="convert::is_dd_mon_yyyy"></a>
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>is_dd_mon_yyyy</b> (char *t)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga13" doxytag="convert::is_numeric"></a>
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>is_numeric</b> (const char *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga16" doxytag="convert::is_numeric_dateformat"></a>
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>is_numeric_dateformat</b> (const char *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga12" doxytag="convert::is_timeformat"></a>
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>is_timeformat</b> (const char *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga38" doxytag="convert::store_dd_mon_yyy_date"></a>
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>store_dd_mon_yyy_date</b> (char *datestr, struct tds_time *t)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga5" doxytag="convert::store_hour"></a>
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>store_hour</b> (const char *, const char *, struct tds_time *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga10" doxytag="convert::store_mday"></a>
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>store_mday</b> (const char *, struct tds_time *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#ga8">store_monthname</a> (const char *, struct tds_time *)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if a string is a month name and store correct month number.  <a href="#ga8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga9" doxytag="convert::store_numeric_date"></a>
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>store_numeric_date</b> (const char *, struct tds_time *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga6" doxytag="convert::store_time"></a>
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>store_time</b> (const char *, struct tds_time *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga11" doxytag="convert::store_year"></a>
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>store_year</b> (int, struct tds_time *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga7" doxytag="convert::store_yymmdd_date"></a>
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>store_yymmdd_date</b> (const char *, struct tds_time *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga36" doxytag="convert::string_to_datetime"></a>
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>string_to_datetime</b> (const char *datestr, int desttype, CONV_RESULT *cr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#ga3">string_to_int</a> (const char *buf, const char *pend, TDS_INT *res)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convert a number in string to TDS_INT  <a href="#ga3"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#ga4">string_to_int8</a> (const char *buf, const char *pend, TDS_INT8 *res)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convert a number in string to TDS_INT8  <a href="#ga4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#ga1">string_to_numeric</a> (const char *instr, const char *pend, CONV_RESULT *cr)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convert a number in string to a TDSNUMERIC  <a href="#ga1"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga18" doxytag="convert::string_to_result"></a>
static TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#ga18">string_to_result</a> (int desttype, const char *s, CONV_RESULT *cr)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Copy a terminated string to result and return len or TDS_CONVERT_NOMEM. <br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#ga2">stringz_to_numeric</a> (const char *instr, CONV_RESULT *cr)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convert a zero terminated string to NUMERIC  <a href="#ga2"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#ga35">tds_convert</a> (const TDSCONTEXT *tds_ctx, int srctype, const TDS_CHAR *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">tds_convert convert a type to another.  <a href="#ga35"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga20" doxytag="convert::tds_convert_binary"></a>
static TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_convert_binary</b> (int srctype, const TDS_UCHAR *src, TDS_INT srclen, int desttype, CONV_RESULT *cr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga22" doxytag="convert::tds_convert_bit"></a>
static TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_convert_bit</b> (int srctype, const TDS_CHAR *src, int desttype, CONV_RESULT *cr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga21" doxytag="convert::tds_convert_char"></a>
static TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_convert_char</b> (int srctype, const TDS_CHAR *src, TDS_UINT srclen, int desttype, CONV_RESULT *cr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga30" doxytag="convert::tds_convert_datetime"></a>
static TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_convert_datetime</b> (const TDSCONTEXT *tds_ctx, int srctype, const TDS_CHAR *src, int desttype, CONV_RESULT *cr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga31" doxytag="convert::tds_convert_datetime4"></a>
static TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_convert_datetime4</b> (const TDSCONTEXT *tds_ctx, int srctype, const TDS_CHAR *src, int desttype, CONV_RESULT *cr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga33" doxytag="convert::tds_convert_flt8"></a>
static TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_convert_flt8</b> (int srctype, const TDS_CHAR *src, int desttype, CONV_RESULT *cr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga23" doxytag="convert::tds_convert_int1"></a>
static TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_convert_int1</b> (int srctype, const TDS_CHAR *src, int desttype, CONV_RESULT *cr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga24" doxytag="convert::tds_convert_int2"></a>
static TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_convert_int2</b> (int srctype, const TDS_CHAR *src, int desttype, CONV_RESULT *cr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga25" doxytag="convert::tds_convert_int4"></a>
static TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_convert_int4</b> (int srctype, const TDS_CHAR *src, int desttype, CONV_RESULT *cr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga26" doxytag="convert::tds_convert_int8"></a>
static TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_convert_int8</b> (int srctype, const TDS_CHAR *src, int desttype, CONV_RESULT *cr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga29" doxytag="convert::tds_convert_money"></a>
static TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_convert_money</b> (int srctype, const TDS_CHAR *src, int desttype, CONV_RESULT *cr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga28" doxytag="convert::tds_convert_money4"></a>
static TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_convert_money4</b> (int srctype, const TDS_CHAR *src, int srclen, int desttype, CONV_RESULT *cr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga27" doxytag="convert::tds_convert_numeric"></a>
static TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_convert_numeric</b> (int srctype, const TDS_NUMERIC *src, TDS_INT srclen, int desttype, CONV_RESULT *cr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga32" doxytag="convert::tds_convert_real"></a>
static TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_convert_real</b> (int srctype, const TDS_CHAR *src, int desttype, CONV_RESULT *cr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga34" doxytag="convert::tds_convert_unique"></a>
static TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_convert_unique</b> (int srctype, const TDS_CHAR *src, TDS_INT srclen, int desttype, CONV_RESULT *cr)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#ga42">tds_datecrack</a> (TDS_INT datetype, const void *di, <a class="el" href="a00145.html">TDSDATEREC</a> *dr)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Convert from db date format to a structured date format.  <a href="#ga42"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#ga17">tds_get_conversion_type</a> (int srctype, int colsize)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Return type suitable for conversions (convert all nullable types to fixed type).  <a href="#ga17"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">TDS_INT&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#ga39">tds_get_null_type</a> (int srctype)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get same type but nullable.  <a href="#ga39"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#ga40">tds_strftime</a> (char *buf, size_t maxsize, const char *format, const <a class="el" href="a00145.html">TDSDATEREC</a> *dr)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">format a date string according to an "extended" strftime(3) formatting definition.  <a href="#ga40"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00287.html#ga41">tds_willconvert</a> (int srctype, int desttype)</td></tr>

<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if a conversion is possible.  <a href="#ga41"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga0" doxytag="convert::tds_hex_digits"></a>
const char&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_hex_digits</b> [16] = "0123456789abcdef"</td></tr>

</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Conversions between datatypes. 
<p>
Supports, for example, <a class="el" href="a00275.html#ga17">dbconvert()</a>. <hr><h2>Function Documentation</h2>
<a class="anchor" name="ga8" doxytag="convert.c::store_monthname"></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">static int store_monthname           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>datestr</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>struct tds_time *&nbsp;</td>
          <td class="mdname" nowrap> <em>t</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Test if a string is a month name and store correct month number. 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>month number (0-11) or -1 if not match </dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>datestr</em>&nbsp;</td><td>string to check </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>t</em>&nbsp;</td><td>where to store month (if NULL no store is done) </td></tr>
  </table>
</dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga3" doxytag="convert.c::string_to_int"></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">static TDS_INT string_to_int           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>pend</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>TDS_INT *&nbsp;</td>
          <td class="mdname" nowrap> <em>res</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
convert a number in string to TDS_INT 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>TDS_CONVERT_* or failure code on error </dd></dl>
<dl compact><dt><b>Remarks:</b></dt><dd>Sybase's char-&gt;int conversion tolerates embedded blanks, such that "convert( int, ' - 13 ' )" works. If we find blanks, we copy the string to a temporary buffer, skipping the blanks. We return the results of atoi() with a clean string.</dd></dl>
n.b. it is possible to embed all sorts of non-printable characters, but we only check for spaces. at this time, no one on the project has tested anything else.     </td>
  </tr>
</table>
<a class="anchor" name="ga4" doxytag="convert.c::string_to_int8"></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">static TDS_INT string_to_int8           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>pend</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>TDS_INT8 *&nbsp;</td>
          <td class="mdname" nowrap> <em>res</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
convert a number in string to TDS_INT8 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>TDS_CONVERT_* or failure code on error </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga1" doxytag="convert.c::string_to_numeric"></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">static int string_to_numeric           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>instr</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>pend</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>CONV_RESULT *&nbsp;</td>
          <td class="mdname" nowrap> <em>cr</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
convert a number in string to a TDSNUMERIC 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>sizeof(TDS_NUMERIC) on success, TDS_CONVERT_* failure code on failure </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga2" doxytag="convert.c::stringz_to_numeric"></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">static int stringz_to_numeric           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>instr</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>CONV_RESULT *&nbsp;</td>
          <td class="mdname" nowrap> <em>cr</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"><code> [static]</code></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
convert a zero terminated string to NUMERIC 
<p>
<dl compact><dt><b>Returns:</b></dt><dd>sizeof(TDS_NUMERIC) on success, TDS_CONVERT_* failure code on failure </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga35" doxytag="convert.c::tds_convert"></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">TDS_INT tds_convert           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">const TDSCONTEXT *&nbsp;</td>
          <td class="mdname" nowrap> <em>tds_ctx</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>srctype</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const TDS_CHAR *&nbsp;</td>
          <td class="mdname" nowrap> <em>src</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>TDS_UINT&nbsp;</td>
          <td class="mdname" nowrap> <em>srclen</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>desttype</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>CONV_RESULT *&nbsp;</td>
          <td class="mdname" nowrap> <em>cr</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
tds_convert convert a type to another. 
<p>
If you convert to SYBDECIMAL/SYBNUMERIC you MUST initialize precision and scale of cr. Do not expect strings to be zero terminated. Databases support zero inside string. Using strlen may result on data loss or even a segmentation fault. Instead, use memcpy to copy destination using length returned. This function does not handle NULL, srclen should be &gt;0. Client libraries handle NULLs each in their own way. <dl compact><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"></td><td valign="top"><em>tds_ctx</em>&nbsp;</td><td>context (used in conversion to data and to return messages) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>srctype</em>&nbsp;</td><td>type of source </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>src</em>&nbsp;</td><td>pointer to source data to convert </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>srclen</em>&nbsp;</td><td>length in bytes of source (not counting terminator or strings) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>desttype</em>&nbsp;</td><td>type of destination </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>cr</em>&nbsp;</td><td>structure to hold result </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>length of result or TDS_CONVERT_* failure code on failure. All TDS_CONVERT_* constants are &lt;0. </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga42" doxytag="convert.c::tds_datecrack"></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">TDS_INT tds_datecrack           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">TDS_INT&nbsp;</td>
          <td class="mdname" nowrap> <em>datetype</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const void *&nbsp;</td>
          <td class="mdname" nowrap> <em>di</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap><a class="el" href="a00145.html">TDSDATEREC</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>dr</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Convert from db date format to a structured date format. 
<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>datetype</em>&nbsp;</td><td>source date type. SYBDATETIME or SYBDATETIME4 </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>di</em>&nbsp;</td><td>source date </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dr</em>&nbsp;</td><td>destination date </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>TDS_FAIL or TDS_SUCCEED </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga17" doxytag="convert.c::tds_get_conversion_type"></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 tds_get_conversion_type           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname" nowrap> <em>srctype</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>colsize</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Return type suitable for conversions (convert all nullable types to fixed type). 
<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>srctype</em>&nbsp;</td><td>type to convert </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>colsize</em>&nbsp;</td><td>size of type </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>type for conversion </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga39" doxytag="convert.c::tds_get_null_type"></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">TDS_INT tds_get_null_type           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname1" valign="top" nowrap> <em>srctype</em>          </td>
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
          <td class="md" nowrap></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Get same type but nullable. 
<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>srctype</em>&nbsp;</td><td>type requires </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>nullable type </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga40" doxytag="convert.c::tds_strftime"></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">size_t tds_strftime           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">char *&nbsp;</td>
          <td class="mdname" nowrap> <em>buf</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>size_t&nbsp;</td>
          <td class="mdname" nowrap> <em>maxsize</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const char *&nbsp;</td>
          <td class="mdname" nowrap> <em>format</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>const <a class="el" href="a00145.html">TDSDATEREC</a> *&nbsp;</td>
          <td class="mdname" nowrap> <em>dr</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
format a date string according to an "extended" strftime(3) formatting definition. 
<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>buf</em>&nbsp;</td><td>output buffer </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>maxsize</em>&nbsp;</td><td>size of buffer in bytes (space include terminator) </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>format</em>&nbsp;</td><td>format string passed to strftime(3), except that z represents milliseconds </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>dr</em>&nbsp;</td><td>date to convert </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>length of string returned, 0 for error </dd></dl>
    </td>
  </tr>
</table>
<a class="anchor" name="ga41" doxytag="convert.c::tds_willconvert"></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">unsigned char tds_willconvert           </td>
          <td class="md" valign="top">(&nbsp;</td>
          <td class="md" nowrap valign="top">int&nbsp;</td>
          <td class="mdname" nowrap> <em>srctype</em>, </td>
        </tr>
        <tr>
          <td class="md" nowrap align="right"></td>
          <td class="md"></td>
          <td class="md" nowrap>int&nbsp;</td>
          <td class="mdname" nowrap> <em>desttype</em></td>
        </tr>
        <tr>
          <td class="md"></td>
          <td class="md">)&nbsp;</td>
          <td class="md" colspan="2"></td>
        </tr>
      </table>
    </td>
  </tr>
</table>
<table cellspacing="5" cellpadding="0" border="0">
  <tr>
    <td>
      &nbsp;
    </td>
    <td>

<p>
Test if a conversion is possible. 
<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>srctype</em>&nbsp;</td><td>source type </td></tr>
    <tr><td valign="top"></td><td valign="top"><em>desttype</em>&nbsp;</td><td>destination type </td></tr>
  </table>
</dl>
<dl compact><dt><b>Returns:</b></dt><dd>0 if not convertible </dd></dl>
    </td>
  </tr>
</table>
<hr size="1"><address style="align: right;"><small>Generated on Wed May 7 19:22:11 2008 for FreeTDS API by&nbsp;
<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>