~ubuntu-branches/debian/lenny/freetds/lenny

« back to all changes in this revision

Viewing changes to doc/doc/freetds-0.82/reference/a00287.html

  • Committer: Bazaar Package Importer
  • Author(s): Steve Langasek
  • Date: 2008-08-02 11:49:53 UTC
  • mfrom: (2.1.10 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080802114953-0qdeowgl63k42n2c
Tags: 0.82-4
* Fix a typo in the freetds-common description, ugh
* Versioned replaces of libct4 by freetds-common, since the current one
  obviously doesn't have overlapping files.
* tdsodbc: check for /var/lib/odbc existence before removing it in the
  postinst, since there are cases where it won't exist on upgrade (i.e.,
  if the driver was never enabled in the first place).  Closes: #493303.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
 
3
<title>FreeTDS API: Conversion</title>
 
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
 
5
</head><body>
 
6
<!-- Generated by Doxygen 1.4.1 -->
 
7
<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>
 
8
<h1>Conversion<br>
 
9
<small>
 
10
[<a class="el" href="a00294.html">LibTDS API</a>]</small>
 
11
</h1>Conversions between datatypes.  
 
12
<a href="#_details">More...</a><table border="0" cellpadding="0" cellspacing="0">
 
13
<tr><td></td></tr>
 
14
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
 
15
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga45" doxytag="convert::binary_to_result"></a>
 
16
#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>
 
17
 
 
18
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga47" doxytag="convert::CASE_ALL_BINARY"></a>
 
19
#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>
 
20
 
 
21
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga46" doxytag="convert::CASE_ALL_CHAR"></a>
 
22
#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>
 
23
 
 
24
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga43" doxytag="convert::is_monthname"></a>
 
25
#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>is_monthname</b>(s)&nbsp;&nbsp;&nbsp;(store_monthname(s, NULL) &gt;= 0)</td></tr>
 
26
 
 
27
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga44" doxytag="convert::string_to_result"></a>
 
28
#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>
 
29
 
 
30
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
 
31
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga19" doxytag="convert::binary_to_result"></a>
 
32
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>
 
33
 
 
34
<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>
 
35
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga14" doxytag="convert::is_alphabetic"></a>
 
36
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>is_alphabetic</b> (const char *)</td></tr>
 
37
 
 
38
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga15" doxytag="convert::is_ampm"></a>
 
39
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>is_ampm</b> (const char *)</td></tr>
 
40
 
 
41
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga37" doxytag="convert::is_dd_mon_yyyy"></a>
 
42
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>is_dd_mon_yyyy</b> (char *t)</td></tr>
 
43
 
 
44
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga13" doxytag="convert::is_numeric"></a>
 
45
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>is_numeric</b> (const char *)</td></tr>
 
46
 
 
47
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga16" doxytag="convert::is_numeric_dateformat"></a>
 
48
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>is_numeric_dateformat</b> (const char *)</td></tr>
 
49
 
 
50
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga12" doxytag="convert::is_timeformat"></a>
 
51
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>is_timeformat</b> (const char *)</td></tr>
 
52
 
 
53
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga38" doxytag="convert::store_dd_mon_yyy_date"></a>
 
54
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>store_dd_mon_yyy_date</b> (char *datestr, struct tds_time *t)</td></tr>
 
55
 
 
56
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga5" doxytag="convert::store_hour"></a>
 
57
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>store_hour</b> (const char *, const char *, struct tds_time *)</td></tr>
 
58
 
 
59
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga10" doxytag="convert::store_mday"></a>
 
60
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>store_mday</b> (const char *, struct tds_time *)</td></tr>
 
61
 
 
62
<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>
 
63
 
 
64
<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>
 
65
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga9" doxytag="convert::store_numeric_date"></a>
 
66
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>store_numeric_date</b> (const char *, struct tds_time *)</td></tr>
 
67
 
 
68
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga6" doxytag="convert::store_time"></a>
 
69
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>store_time</b> (const char *, struct tds_time *)</td></tr>
 
70
 
 
71
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga11" doxytag="convert::store_year"></a>
 
72
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>store_year</b> (int, struct tds_time *)</td></tr>
 
73
 
 
74
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga7" doxytag="convert::store_yymmdd_date"></a>
 
75
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>store_yymmdd_date</b> (const char *, struct tds_time *)</td></tr>
 
76
 
 
77
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga36" doxytag="convert::string_to_datetime"></a>
 
78
static int&nbsp;</td><td class="memItemRight" valign="bottom"><b>string_to_datetime</b> (const char *datestr, int desttype, CONV_RESULT *cr)</td></tr>
 
79
 
 
80
<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>
 
81
 
 
82
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convert a number in string to TDS_INT  <a href="#ga3"></a><br></td></tr>
 
83
<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>
 
84
 
 
85
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convert a number in string to TDS_INT8  <a href="#ga4"></a><br></td></tr>
 
86
<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>
 
87
 
 
88
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convert a number in string to a TDSNUMERIC  <a href="#ga1"></a><br></td></tr>
 
89
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga18" doxytag="convert::string_to_result"></a>
 
90
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>
 
91
 
 
92
<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>
 
93
<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>
 
94
 
 
95
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">convert a zero terminated string to NUMERIC  <a href="#ga2"></a><br></td></tr>
 
96
<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>
 
97
 
 
98
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">tds_convert convert a type to another.  <a href="#ga35"></a><br></td></tr>
 
99
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga20" doxytag="convert::tds_convert_binary"></a>
 
100
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>
 
101
 
 
102
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga22" doxytag="convert::tds_convert_bit"></a>
 
103
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>
 
104
 
 
105
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga21" doxytag="convert::tds_convert_char"></a>
 
106
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>
 
107
 
 
108
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga30" doxytag="convert::tds_convert_datetime"></a>
 
109
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>
 
110
 
 
111
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga31" doxytag="convert::tds_convert_datetime4"></a>
 
112
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>
 
113
 
 
114
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga33" doxytag="convert::tds_convert_flt8"></a>
 
115
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>
 
116
 
 
117
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga23" doxytag="convert::tds_convert_int1"></a>
 
118
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>
 
119
 
 
120
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga24" doxytag="convert::tds_convert_int2"></a>
 
121
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>
 
122
 
 
123
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga25" doxytag="convert::tds_convert_int4"></a>
 
124
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>
 
125
 
 
126
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga26" doxytag="convert::tds_convert_int8"></a>
 
127
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>
 
128
 
 
129
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga29" doxytag="convert::tds_convert_money"></a>
 
130
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>
 
131
 
 
132
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga28" doxytag="convert::tds_convert_money4"></a>
 
133
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>
 
134
 
 
135
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga27" doxytag="convert::tds_convert_numeric"></a>
 
136
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>
 
137
 
 
138
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga32" doxytag="convert::tds_convert_real"></a>
 
139
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>
 
140
 
 
141
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga34" doxytag="convert::tds_convert_unique"></a>
 
142
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>
 
143
 
 
144
<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>
 
145
 
 
146
<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>
 
147
<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>
 
148
 
 
149
<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>
 
150
<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>
 
151
 
 
152
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get same type but nullable.  <a href="#ga39"></a><br></td></tr>
 
153
<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>
 
154
 
 
155
<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>
 
156
<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>
 
157
 
 
158
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Test if a conversion is possible.  <a href="#ga41"></a><br></td></tr>
 
159
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
 
160
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ga0" doxytag="convert::tds_hex_digits"></a>
 
161
const char&nbsp;</td><td class="memItemRight" valign="bottom"><b>tds_hex_digits</b> [16] = "0123456789abcdef"</td></tr>
 
162
 
 
163
</table>
 
164
<hr><a name="_details"></a><h2>Detailed Description</h2>
 
165
Conversions between datatypes. 
 
166
<p>
 
167
Supports, for example, <a class="el" href="a00275.html#ga17">dbconvert()</a>. <hr><h2>Function Documentation</h2>
 
168
<a class="anchor" name="ga8" doxytag="convert.c::store_monthname"></a><p>
 
169
<table class="mdTable" cellpadding="2" cellspacing="0">
 
170
  <tr>
 
171
    <td class="mdRow">
 
172
      <table cellpadding="0" cellspacing="0" border="0">
 
173
        <tr>
 
174
          <td class="md" nowrap valign="top">static int store_monthname           </td>
 
175
          <td class="md" valign="top">(&nbsp;</td>
 
176
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
 
177
          <td class="mdname" nowrap> <em>datestr</em>, </td>
 
178
        </tr>
 
179
        <tr>
 
180
          <td class="md" nowrap align="right"></td>
 
181
          <td class="md"></td>
 
182
          <td class="md" nowrap>struct tds_time *&nbsp;</td>
 
183
          <td class="mdname" nowrap> <em>t</em></td>
 
184
        </tr>
 
185
        <tr>
 
186
          <td class="md"></td>
 
187
          <td class="md">)&nbsp;</td>
 
188
          <td class="md" colspan="2"><code> [static]</code></td>
 
189
        </tr>
 
190
      </table>
 
191
    </td>
 
192
  </tr>
 
193
</table>
 
194
<table cellspacing="5" cellpadding="0" border="0">
 
195
  <tr>
 
196
    <td>
 
197
      &nbsp;
 
198
    </td>
 
199
    <td>
 
200
 
 
201
<p>
 
202
Test if a string is a month name and store correct month number. 
 
203
<p>
 
204
<dl compact><dt><b>Returns:</b></dt><dd>month number (0-11) or -1 if not match </dd></dl>
 
205
<dl compact><dt><b>Parameters:</b></dt><dd>
 
206
  <table border="0" cellspacing="2" cellpadding="0">
 
207
    <tr><td valign="top"></td><td valign="top"><em>datestr</em>&nbsp;</td><td>string to check </td></tr>
 
208
    <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>
 
209
  </table>
 
210
</dl>
 
211
    </td>
 
212
  </tr>
 
213
</table>
 
214
<a class="anchor" name="ga3" doxytag="convert.c::string_to_int"></a><p>
 
215
<table class="mdTable" cellpadding="2" cellspacing="0">
 
216
  <tr>
 
217
    <td class="mdRow">
 
218
      <table cellpadding="0" cellspacing="0" border="0">
 
219
        <tr>
 
220
          <td class="md" nowrap valign="top">static TDS_INT string_to_int           </td>
 
221
          <td class="md" valign="top">(&nbsp;</td>
 
222
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
 
223
          <td class="mdname" nowrap> <em>buf</em>, </td>
 
224
        </tr>
 
225
        <tr>
 
226
          <td class="md" nowrap align="right"></td>
 
227
          <td class="md"></td>
 
228
          <td class="md" nowrap>const char *&nbsp;</td>
 
229
          <td class="mdname" nowrap> <em>pend</em>, </td>
 
230
        </tr>
 
231
        <tr>
 
232
          <td class="md" nowrap align="right"></td>
 
233
          <td class="md"></td>
 
234
          <td class="md" nowrap>TDS_INT *&nbsp;</td>
 
235
          <td class="mdname" nowrap> <em>res</em></td>
 
236
        </tr>
 
237
        <tr>
 
238
          <td class="md"></td>
 
239
          <td class="md">)&nbsp;</td>
 
240
          <td class="md" colspan="2"><code> [static]</code></td>
 
241
        </tr>
 
242
      </table>
 
243
    </td>
 
244
  </tr>
 
245
</table>
 
246
<table cellspacing="5" cellpadding="0" border="0">
 
247
  <tr>
 
248
    <td>
 
249
      &nbsp;
 
250
    </td>
 
251
    <td>
 
252
 
 
253
<p>
 
254
convert a number in string to TDS_INT 
 
255
<p>
 
256
<dl compact><dt><b>Returns:</b></dt><dd>TDS_CONVERT_* or failure code on error </dd></dl>
 
257
<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>
 
258
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>
 
259
  </tr>
 
260
</table>
 
261
<a class="anchor" name="ga4" doxytag="convert.c::string_to_int8"></a><p>
 
262
<table class="mdTable" cellpadding="2" cellspacing="0">
 
263
  <tr>
 
264
    <td class="mdRow">
 
265
      <table cellpadding="0" cellspacing="0" border="0">
 
266
        <tr>
 
267
          <td class="md" nowrap valign="top">static TDS_INT string_to_int8           </td>
 
268
          <td class="md" valign="top">(&nbsp;</td>
 
269
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
 
270
          <td class="mdname" nowrap> <em>buf</em>, </td>
 
271
        </tr>
 
272
        <tr>
 
273
          <td class="md" nowrap align="right"></td>
 
274
          <td class="md"></td>
 
275
          <td class="md" nowrap>const char *&nbsp;</td>
 
276
          <td class="mdname" nowrap> <em>pend</em>, </td>
 
277
        </tr>
 
278
        <tr>
 
279
          <td class="md" nowrap align="right"></td>
 
280
          <td class="md"></td>
 
281
          <td class="md" nowrap>TDS_INT8 *&nbsp;</td>
 
282
          <td class="mdname" nowrap> <em>res</em></td>
 
283
        </tr>
 
284
        <tr>
 
285
          <td class="md"></td>
 
286
          <td class="md">)&nbsp;</td>
 
287
          <td class="md" colspan="2"><code> [static]</code></td>
 
288
        </tr>
 
289
      </table>
 
290
    </td>
 
291
  </tr>
 
292
</table>
 
293
<table cellspacing="5" cellpadding="0" border="0">
 
294
  <tr>
 
295
    <td>
 
296
      &nbsp;
 
297
    </td>
 
298
    <td>
 
299
 
 
300
<p>
 
301
convert a number in string to TDS_INT8 
 
302
<p>
 
303
<dl compact><dt><b>Returns:</b></dt><dd>TDS_CONVERT_* or failure code on error </dd></dl>
 
304
    </td>
 
305
  </tr>
 
306
</table>
 
307
<a class="anchor" name="ga1" doxytag="convert.c::string_to_numeric"></a><p>
 
308
<table class="mdTable" cellpadding="2" cellspacing="0">
 
309
  <tr>
 
310
    <td class="mdRow">
 
311
      <table cellpadding="0" cellspacing="0" border="0">
 
312
        <tr>
 
313
          <td class="md" nowrap valign="top">static int string_to_numeric           </td>
 
314
          <td class="md" valign="top">(&nbsp;</td>
 
315
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
 
316
          <td class="mdname" nowrap> <em>instr</em>, </td>
 
317
        </tr>
 
318
        <tr>
 
319
          <td class="md" nowrap align="right"></td>
 
320
          <td class="md"></td>
 
321
          <td class="md" nowrap>const char *&nbsp;</td>
 
322
          <td class="mdname" nowrap> <em>pend</em>, </td>
 
323
        </tr>
 
324
        <tr>
 
325
          <td class="md" nowrap align="right"></td>
 
326
          <td class="md"></td>
 
327
          <td class="md" nowrap>CONV_RESULT *&nbsp;</td>
 
328
          <td class="mdname" nowrap> <em>cr</em></td>
 
329
        </tr>
 
330
        <tr>
 
331
          <td class="md"></td>
 
332
          <td class="md">)&nbsp;</td>
 
333
          <td class="md" colspan="2"><code> [static]</code></td>
 
334
        </tr>
 
335
      </table>
 
336
    </td>
 
337
  </tr>
 
338
</table>
 
339
<table cellspacing="5" cellpadding="0" border="0">
 
340
  <tr>
 
341
    <td>
 
342
      &nbsp;
 
343
    </td>
 
344
    <td>
 
345
 
 
346
<p>
 
347
convert a number in string to a TDSNUMERIC 
 
348
<p>
 
349
<dl compact><dt><b>Returns:</b></dt><dd>sizeof(TDS_NUMERIC) on success, TDS_CONVERT_* failure code on failure </dd></dl>
 
350
    </td>
 
351
  </tr>
 
352
</table>
 
353
<a class="anchor" name="ga2" doxytag="convert.c::stringz_to_numeric"></a><p>
 
354
<table class="mdTable" cellpadding="2" cellspacing="0">
 
355
  <tr>
 
356
    <td class="mdRow">
 
357
      <table cellpadding="0" cellspacing="0" border="0">
 
358
        <tr>
 
359
          <td class="md" nowrap valign="top">static int stringz_to_numeric           </td>
 
360
          <td class="md" valign="top">(&nbsp;</td>
 
361
          <td class="md" nowrap valign="top">const char *&nbsp;</td>
 
362
          <td class="mdname" nowrap> <em>instr</em>, </td>
 
363
        </tr>
 
364
        <tr>
 
365
          <td class="md" nowrap align="right"></td>
 
366
          <td class="md"></td>
 
367
          <td class="md" nowrap>CONV_RESULT *&nbsp;</td>
 
368
          <td class="mdname" nowrap> <em>cr</em></td>
 
369
        </tr>
 
370
        <tr>
 
371
          <td class="md"></td>
 
372
          <td class="md">)&nbsp;</td>
 
373
          <td class="md" colspan="2"><code> [static]</code></td>
 
374
        </tr>
 
375
      </table>
 
376
    </td>
 
377
  </tr>
 
378
</table>
 
379
<table cellspacing="5" cellpadding="0" border="0">
 
380
  <tr>
 
381
    <td>
 
382
      &nbsp;
 
383
    </td>
 
384
    <td>
 
385
 
 
386
<p>
 
387
convert a zero terminated string to NUMERIC 
 
388
<p>
 
389
<dl compact><dt><b>Returns:</b></dt><dd>sizeof(TDS_NUMERIC) on success, TDS_CONVERT_* failure code on failure </dd></dl>
 
390
    </td>
 
391
  </tr>
 
392
</table>
 
393
<a class="anchor" name="ga35" doxytag="convert.c::tds_convert"></a><p>
 
394
<table class="mdTable" cellpadding="2" cellspacing="0">
 
395
  <tr>
 
396
    <td class="mdRow">
 
397
      <table cellpadding="0" cellspacing="0" border="0">
 
398
        <tr>
 
399
          <td class="md" nowrap valign="top">TDS_INT tds_convert           </td>
 
400
          <td class="md" valign="top">(&nbsp;</td>
 
401
          <td class="md" nowrap valign="top">const TDSCONTEXT *&nbsp;</td>
 
402
          <td class="mdname" nowrap> <em>tds_ctx</em>, </td>
 
403
        </tr>
 
404
        <tr>
 
405
          <td class="md" nowrap align="right"></td>
 
406
          <td class="md"></td>
 
407
          <td class="md" nowrap>int&nbsp;</td>
 
408
          <td class="mdname" nowrap> <em>srctype</em>, </td>
 
409
        </tr>
 
410
        <tr>
 
411
          <td class="md" nowrap align="right"></td>
 
412
          <td class="md"></td>
 
413
          <td class="md" nowrap>const TDS_CHAR *&nbsp;</td>
 
414
          <td class="mdname" nowrap> <em>src</em>, </td>
 
415
        </tr>
 
416
        <tr>
 
417
          <td class="md" nowrap align="right"></td>
 
418
          <td class="md"></td>
 
419
          <td class="md" nowrap>TDS_UINT&nbsp;</td>
 
420
          <td class="mdname" nowrap> <em>srclen</em>, </td>
 
421
        </tr>
 
422
        <tr>
 
423
          <td class="md" nowrap align="right"></td>
 
424
          <td class="md"></td>
 
425
          <td class="md" nowrap>int&nbsp;</td>
 
426
          <td class="mdname" nowrap> <em>desttype</em>, </td>
 
427
        </tr>
 
428
        <tr>
 
429
          <td class="md" nowrap align="right"></td>
 
430
          <td class="md"></td>
 
431
          <td class="md" nowrap>CONV_RESULT *&nbsp;</td>
 
432
          <td class="mdname" nowrap> <em>cr</em></td>
 
433
        </tr>
 
434
        <tr>
 
435
          <td class="md"></td>
 
436
          <td class="md">)&nbsp;</td>
 
437
          <td class="md" colspan="2"></td>
 
438
        </tr>
 
439
      </table>
 
440
    </td>
 
441
  </tr>
 
442
</table>
 
443
<table cellspacing="5" cellpadding="0" border="0">
 
444
  <tr>
 
445
    <td>
 
446
      &nbsp;
 
447
    </td>
 
448
    <td>
 
449
 
 
450
<p>
 
451
tds_convert convert a type to another. 
 
452
<p>
 
453
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>
 
454
  <table border="0" cellspacing="2" cellpadding="0">
 
455
    <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>
 
456
    <tr><td valign="top"></td><td valign="top"><em>srctype</em>&nbsp;</td><td>type of source </td></tr>
 
457
    <tr><td valign="top"></td><td valign="top"><em>src</em>&nbsp;</td><td>pointer to source data to convert </td></tr>
 
458
    <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>
 
459
    <tr><td valign="top"></td><td valign="top"><em>desttype</em>&nbsp;</td><td>type of destination </td></tr>
 
460
    <tr><td valign="top"></td><td valign="top"><em>cr</em>&nbsp;</td><td>structure to hold result </td></tr>
 
461
  </table>
 
462
</dl>
 
463
<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>
 
464
    </td>
 
465
  </tr>
 
466
</table>
 
467
<a class="anchor" name="ga42" doxytag="convert.c::tds_datecrack"></a><p>
 
468
<table class="mdTable" cellpadding="2" cellspacing="0">
 
469
  <tr>
 
470
    <td class="mdRow">
 
471
      <table cellpadding="0" cellspacing="0" border="0">
 
472
        <tr>
 
473
          <td class="md" nowrap valign="top">TDS_INT tds_datecrack           </td>
 
474
          <td class="md" valign="top">(&nbsp;</td>
 
475
          <td class="md" nowrap valign="top">TDS_INT&nbsp;</td>
 
476
          <td class="mdname" nowrap> <em>datetype</em>, </td>
 
477
        </tr>
 
478
        <tr>
 
479
          <td class="md" nowrap align="right"></td>
 
480
          <td class="md"></td>
 
481
          <td class="md" nowrap>const void *&nbsp;</td>
 
482
          <td class="mdname" nowrap> <em>di</em>, </td>
 
483
        </tr>
 
484
        <tr>
 
485
          <td class="md" nowrap align="right"></td>
 
486
          <td class="md"></td>
 
487
          <td class="md" nowrap><a class="el" href="a00145.html">TDSDATEREC</a> *&nbsp;</td>
 
488
          <td class="mdname" nowrap> <em>dr</em></td>
 
489
        </tr>
 
490
        <tr>
 
491
          <td class="md"></td>
 
492
          <td class="md">)&nbsp;</td>
 
493
          <td class="md" colspan="2"></td>
 
494
        </tr>
 
495
      </table>
 
496
    </td>
 
497
  </tr>
 
498
</table>
 
499
<table cellspacing="5" cellpadding="0" border="0">
 
500
  <tr>
 
501
    <td>
 
502
      &nbsp;
 
503
    </td>
 
504
    <td>
 
505
 
 
506
<p>
 
507
Convert from db date format to a structured date format. 
 
508
<p>
 
509
<dl compact><dt><b>Parameters:</b></dt><dd>
 
510
  <table border="0" cellspacing="2" cellpadding="0">
 
511
    <tr><td valign="top"></td><td valign="top"><em>datetype</em>&nbsp;</td><td>source date type. SYBDATETIME or SYBDATETIME4 </td></tr>
 
512
    <tr><td valign="top"></td><td valign="top"><em>di</em>&nbsp;</td><td>source date </td></tr>
 
513
    <tr><td valign="top"></td><td valign="top"><em>dr</em>&nbsp;</td><td>destination date </td></tr>
 
514
  </table>
 
515
</dl>
 
516
<dl compact><dt><b>Returns:</b></dt><dd>TDS_FAIL or TDS_SUCCEED </dd></dl>
 
517
    </td>
 
518
  </tr>
 
519
</table>
 
520
<a class="anchor" name="ga17" doxytag="convert.c::tds_get_conversion_type"></a><p>
 
521
<table class="mdTable" cellpadding="2" cellspacing="0">
 
522
  <tr>
 
523
    <td class="mdRow">
 
524
      <table cellpadding="0" cellspacing="0" border="0">
 
525
        <tr>
 
526
          <td class="md" nowrap valign="top">int tds_get_conversion_type           </td>
 
527
          <td class="md" valign="top">(&nbsp;</td>
 
528
          <td class="md" nowrap valign="top">int&nbsp;</td>
 
529
          <td class="mdname" nowrap> <em>srctype</em>, </td>
 
530
        </tr>
 
531
        <tr>
 
532
          <td class="md" nowrap align="right"></td>
 
533
          <td class="md"></td>
 
534
          <td class="md" nowrap>int&nbsp;</td>
 
535
          <td class="mdname" nowrap> <em>colsize</em></td>
 
536
        </tr>
 
537
        <tr>
 
538
          <td class="md"></td>
 
539
          <td class="md">)&nbsp;</td>
 
540
          <td class="md" colspan="2"></td>
 
541
        </tr>
 
542
      </table>
 
543
    </td>
 
544
  </tr>
 
545
</table>
 
546
<table cellspacing="5" cellpadding="0" border="0">
 
547
  <tr>
 
548
    <td>
 
549
      &nbsp;
 
550
    </td>
 
551
    <td>
 
552
 
 
553
<p>
 
554
Return type suitable for conversions (convert all nullable types to fixed type). 
 
555
<p>
 
556
<dl compact><dt><b>Parameters:</b></dt><dd>
 
557
  <table border="0" cellspacing="2" cellpadding="0">
 
558
    <tr><td valign="top"></td><td valign="top"><em>srctype</em>&nbsp;</td><td>type to convert </td></tr>
 
559
    <tr><td valign="top"></td><td valign="top"><em>colsize</em>&nbsp;</td><td>size of type </td></tr>
 
560
  </table>
 
561
</dl>
 
562
<dl compact><dt><b>Returns:</b></dt><dd>type for conversion </dd></dl>
 
563
    </td>
 
564
  </tr>
 
565
</table>
 
566
<a class="anchor" name="ga39" doxytag="convert.c::tds_get_null_type"></a><p>
 
567
<table class="mdTable" cellpadding="2" cellspacing="0">
 
568
  <tr>
 
569
    <td class="mdRow">
 
570
      <table cellpadding="0" cellspacing="0" border="0">
 
571
        <tr>
 
572
          <td class="md" nowrap valign="top">TDS_INT tds_get_null_type           </td>
 
573
          <td class="md" valign="top">(&nbsp;</td>
 
574
          <td class="md" nowrap valign="top">int&nbsp;</td>
 
575
          <td class="mdname1" valign="top" nowrap> <em>srctype</em>          </td>
 
576
          <td class="md" valign="top">&nbsp;)&nbsp;</td>
 
577
          <td class="md" nowrap></td>
 
578
        </tr>
 
579
      </table>
 
580
    </td>
 
581
  </tr>
 
582
</table>
 
583
<table cellspacing="5" cellpadding="0" border="0">
 
584
  <tr>
 
585
    <td>
 
586
      &nbsp;
 
587
    </td>
 
588
    <td>
 
589
 
 
590
<p>
 
591
Get same type but nullable. 
 
592
<p>
 
593
<dl compact><dt><b>Parameters:</b></dt><dd>
 
594
  <table border="0" cellspacing="2" cellpadding="0">
 
595
    <tr><td valign="top"></td><td valign="top"><em>srctype</em>&nbsp;</td><td>type requires </td></tr>
 
596
  </table>
 
597
</dl>
 
598
<dl compact><dt><b>Returns:</b></dt><dd>nullable type </dd></dl>
 
599
    </td>
 
600
  </tr>
 
601
</table>
 
602
<a class="anchor" name="ga40" doxytag="convert.c::tds_strftime"></a><p>
 
603
<table class="mdTable" cellpadding="2" cellspacing="0">
 
604
  <tr>
 
605
    <td class="mdRow">
 
606
      <table cellpadding="0" cellspacing="0" border="0">
 
607
        <tr>
 
608
          <td class="md" nowrap valign="top">size_t tds_strftime           </td>
 
609
          <td class="md" valign="top">(&nbsp;</td>
 
610
          <td class="md" nowrap valign="top">char *&nbsp;</td>
 
611
          <td class="mdname" nowrap> <em>buf</em>, </td>
 
612
        </tr>
 
613
        <tr>
 
614
          <td class="md" nowrap align="right"></td>
 
615
          <td class="md"></td>
 
616
          <td class="md" nowrap>size_t&nbsp;</td>
 
617
          <td class="mdname" nowrap> <em>maxsize</em>, </td>
 
618
        </tr>
 
619
        <tr>
 
620
          <td class="md" nowrap align="right"></td>
 
621
          <td class="md"></td>
 
622
          <td class="md" nowrap>const char *&nbsp;</td>
 
623
          <td class="mdname" nowrap> <em>format</em>, </td>
 
624
        </tr>
 
625
        <tr>
 
626
          <td class="md" nowrap align="right"></td>
 
627
          <td class="md"></td>
 
628
          <td class="md" nowrap>const <a class="el" href="a00145.html">TDSDATEREC</a> *&nbsp;</td>
 
629
          <td class="mdname" nowrap> <em>dr</em></td>
 
630
        </tr>
 
631
        <tr>
 
632
          <td class="md"></td>
 
633
          <td class="md">)&nbsp;</td>
 
634
          <td class="md" colspan="2"></td>
 
635
        </tr>
 
636
      </table>
 
637
    </td>
 
638
  </tr>
 
639
</table>
 
640
<table cellspacing="5" cellpadding="0" border="0">
 
641
  <tr>
 
642
    <td>
 
643
      &nbsp;
 
644
    </td>
 
645
    <td>
 
646
 
 
647
<p>
 
648
format a date string according to an "extended" strftime(3) formatting definition. 
 
649
<p>
 
650
<dl compact><dt><b>Parameters:</b></dt><dd>
 
651
  <table border="0" cellspacing="2" cellpadding="0">
 
652
    <tr><td valign="top"></td><td valign="top"><em>buf</em>&nbsp;</td><td>output buffer </td></tr>
 
653
    <tr><td valign="top"></td><td valign="top"><em>maxsize</em>&nbsp;</td><td>size of buffer in bytes (space include terminator) </td></tr>
 
654
    <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>
 
655
    <tr><td valign="top"></td><td valign="top"><em>dr</em>&nbsp;</td><td>date to convert </td></tr>
 
656
  </table>
 
657
</dl>
 
658
<dl compact><dt><b>Returns:</b></dt><dd>length of string returned, 0 for error </dd></dl>
 
659
    </td>
 
660
  </tr>
 
661
</table>
 
662
<a class="anchor" name="ga41" doxytag="convert.c::tds_willconvert"></a><p>
 
663
<table class="mdTable" cellpadding="2" cellspacing="0">
 
664
  <tr>
 
665
    <td class="mdRow">
 
666
      <table cellpadding="0" cellspacing="0" border="0">
 
667
        <tr>
 
668
          <td class="md" nowrap valign="top">unsigned char tds_willconvert           </td>
 
669
          <td class="md" valign="top">(&nbsp;</td>
 
670
          <td class="md" nowrap valign="top">int&nbsp;</td>
 
671
          <td class="mdname" nowrap> <em>srctype</em>, </td>
 
672
        </tr>
 
673
        <tr>
 
674
          <td class="md" nowrap align="right"></td>
 
675
          <td class="md"></td>
 
676
          <td class="md" nowrap>int&nbsp;</td>
 
677
          <td class="mdname" nowrap> <em>desttype</em></td>
 
678
        </tr>
 
679
        <tr>
 
680
          <td class="md"></td>
 
681
          <td class="md">)&nbsp;</td>
 
682
          <td class="md" colspan="2"></td>
 
683
        </tr>
 
684
      </table>
 
685
    </td>
 
686
  </tr>
 
687
</table>
 
688
<table cellspacing="5" cellpadding="0" border="0">
 
689
  <tr>
 
690
    <td>
 
691
      &nbsp;
 
692
    </td>
 
693
    <td>
 
694
 
 
695
<p>
 
696
Test if a conversion is possible. 
 
697
<p>
 
698
<dl compact><dt><b>Parameters:</b></dt><dd>
 
699
  <table border="0" cellspacing="2" cellpadding="0">
 
700
    <tr><td valign="top"></td><td valign="top"><em>srctype</em>&nbsp;</td><td>source type </td></tr>
 
701
    <tr><td valign="top"></td><td valign="top"><em>desttype</em>&nbsp;</td><td>destination type </td></tr>
 
702
  </table>
 
703
</dl>
 
704
<dl compact><dt><b>Returns:</b></dt><dd>0 if not convertible </dd></dl>
 
705
    </td>
 
706
  </tr>
 
707
</table>
 
708
<hr size="1"><address style="align: right;"><small>Generated on Wed May 7 19:22:11 2008 for FreeTDS API by&nbsp;
 
709
<a href="http://www.doxygen.org/index.html">
 
710
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>
 
711
</body>
 
712
</html>