Sophie

Sophie

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

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: /usr/local/users/home/jklowden/projects/releases/freetds/0.82/include/dblib.h Source File</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>
<div class="nav">
<a class="el" href="dir_000000.html">include</a></div>
<h1>dblib.h</h1><div class="fragment"><pre class="fragment">00001 <span class="comment">/* FreeTDS - Library of routines accessing Sybase and Microsoft databases</span>
00002 <span class="comment"> * Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005  Brian Bruns</span>
00003 <span class="comment"> *</span>
00004 <span class="comment"> * This library is free software; you can redistribute it and/or</span>
00005 <span class="comment"> * modify it under the terms of the GNU Library General Public</span>
00006 <span class="comment"> * License as published by the Free Software Foundation; either</span>
00007 <span class="comment"> * version 2 of the License, or (at your option) any later version.</span>
00008 <span class="comment"> *</span>
00009 <span class="comment"> * This library is distributed in the hope that it will be useful,</span>
00010 <span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span>
00011 <span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU</span>
00012 <span class="comment"> * Library General Public License for more details.</span>
00013 <span class="comment"> *</span>
00014 <span class="comment"> * You should have received a copy of the GNU Library General Public</span>
00015 <span class="comment"> * License along with this library; if not, write to the</span>
00016 <span class="comment"> * Free Software Foundation, Inc., 59 Temple Place - Suite 330,</span>
00017 <span class="comment"> * Boston, MA 02111-1307, USA.</span>
00018 <span class="comment"> */</span>
00019 
00020 <span class="preprocessor">#ifndef _dblib_h_</span>
00021 <span class="preprocessor"></span><span class="preprocessor">#define _dblib_h_</span>
00022 <span class="preprocessor"></span>
00023 <span class="preprocessor">#if defined(__GNUC__) &amp;&amp; __GNUC__ &gt;= 4</span>
00024 <span class="preprocessor"></span><span class="preprocessor">#pragma GCC visibility push(hidden)</span>
00025 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00026 <span class="preprocessor"></span>
00027 <span class="preprocessor">#ifdef __cplusplus</span>
00028 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span>
00029 {
00030 <span class="preprocessor">#if 0</span>
00031 <span class="preprocessor"></span>}
00032 <span class="preprocessor">#endif</span>
00033 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00034 <span class="preprocessor"></span>
00035 <span class="comment">/* $Id: dblib.h,v 1.43 2007/12/05 03:04:11 jklowden Exp $ */</span>
00036 
00037 <span class="keyword">enum</span> {
00038           _DB_RES_INIT            = 0
00039         , _DB_RES_RESULTSET_EMPTY = 1
00040         , _DB_RES_RESULTSET_ROWS  = 2
00041         , _DB_RES_NEXT_RESULT     = 3
00042         , _DB_RES_NO_MORE_RESULTS = 4
00043         , _DB_RES_SUCCEED         = 5
00044 };
00045 
00046 <span class="keyword">struct </span>tds_dblib_loginrec
00047 {
00048         TDSLOGIN *tds_login;
00049 };
00050 
00051 <span class="keyword">struct </span>dblib_buffer_row;
00052 
00053 <span class="keyword">typedef</span> <span class="keyword">struct </span>tag_DBPROC_ROWBUF
00054 {
00055         <span class="keywordtype">int</span> received;           <span class="comment">/* how many rows have been received for this result set */</span>
00056         <span class="keywordtype">int</span> head;               <span class="comment">/* queue insertion point */</span>
00057         <span class="keywordtype">int</span> tail;               <span class="comment">/* oldest item in queue */</span>
00058         <span class="keywordtype">int</span> current;            <span class="comment">/* dbnextrow() reads this row */</span>
00059         <span class="keywordtype">int</span> capacity;           <span class="comment">/* how many elements the queue can hold  */</span>
00060         <span class="keyword">struct </span>dblib_buffer_row *rows;          <span class="comment">/* pointer to the row storage */</span>
00061 } DBPROC_ROWBUF;
00062 
00063 <span class="keyword">typedef</span> <span class="keyword">struct</span>
00064 <span class="keyword"></span>{
00065         <span class="keywordtype">int</span> host_column;
00066         <span class="keywordtype">int</span> datatype;
00067         <span class="keywordtype">int</span> prefix_len;
00068         DBINT column_len;
00069         BYTE *terminator;
00070         <span class="keywordtype">int</span> term_len;
00071         <span class="keywordtype">int</span> tab_colnum;
00072         <span class="keywordtype">int</span> column_error;
00073         BCPCOLDATA *bcp_column_data;
00074 } BCP_HOSTCOLINFO;
00075 
00076 <span class="keyword">typedef</span> <span class="keyword">struct </span>
00077 <span class="keyword"></span>{
00078         TDS_CHAR *hostfile;
00079         TDS_CHAR *errorfile;
00080         FILE *bcp_errfileptr;
00081         TDS_INT host_colcount;
00082         BCP_HOSTCOLINFO **host_columns;
00083         TDS_INT firstrow;
00084         TDS_INT lastrow;
00085         TDS_INT maxerrs;
00086         TDS_INT batch;
00087 } BCP_HOSTFILEINFO;
00088 
00089 <span class="keyword">typedef</span> <span class="keyword">struct</span>
00090 <span class="keyword"></span>{
00091         <span class="keyword">const</span> <span class="keywordtype">char</span> *hint;
00092         TDS_CHAR *tablename;
00093         TDS_CHAR *insert_stmt;
00094         TDS_INT direction;
00095         TDS_INT queryout;
00096         TDS_INT identity_insert_on;
00097         TDS_INT xfer_init;
00098         TDS_INT var_cols;
00099         TDS_INT bind_count;
00100         <a class="code" href="a00143.html">TDSRESULTINFO</a> *bindinfo;
00101 } DB_BCPINFO;
00102 <span class="comment">/* linked list of rpc parameters */</span>
00103 
00104 <span class="keyword">typedef</span> <span class="keyword">struct </span>_DBREMOTE_PROC_PARAM
00105 {
00106         <span class="keyword">struct </span>_DBREMOTE_PROC_PARAM *next;
00107 
00108         <span class="keywordtype">char</span> *name;
00109         BYTE status;
00110         <span class="keywordtype">int</span> type;
00111         DBINT maxlen;
00112         DBINT datalen;
00113         BYTE *value;
00114 } DBREMOTE_PROC_PARAM;
00115 
00116 <span class="keyword">typedef</span> <span class="keyword">struct </span>_DBREMOTE_PROC
00117 {
00118         <span class="keyword">struct </span>_DBREMOTE_PROC *next;
00119 
00120         <span class="keywordtype">char</span> *name;
00121         DBSMALLINT options;
00122         DBREMOTE_PROC_PARAM *param_list;
00123 } DBREMOTE_PROC;
00124 
00125 <span class="preprocessor">#define MAXOPTTEXT    32</span>
00126 <span class="preprocessor"></span>
00127 <span class="keyword">struct </span>dboption
00128 {
00129         <span class="keywordtype">char</span> text[MAXOPTTEXT];
00130         DBSTRING *param;
00131         DBBOOL factive;
00132 };
00133 <span class="keyword">typedef</span> <span class="keyword">struct </span>dboption DBOPTION;
00134 
00135 <span class="keyword">typedef</span> <span class="keyword">struct </span>_null_representation
00136 {
00137         <span class="keyword">const</span> BYTE *bindval;
00138         size_t len;
00139 } NULLREP;
00140 
00141 <span class="keyword">struct </span>tds_dblib_dbprocess
00142 {
00143         <a class="code" href="a00144.html">TDSSOCKET</a> *<a class="code" href="a00144.html">tds_socket</a>;
00144 
00145         TDS_INT row_type;
00146         DBPROC_ROWBUF row_buf;
00147 
00148         <span class="keywordtype">int</span> noautofree;
00149         <span class="keywordtype">int</span> more_results;       <span class="comment">/* boolean.  Are we expecting results? */</span>
00150         <span class="keywordtype">int</span> dbresults_state;
00151         <span class="keywordtype">int</span> dbresults_retcode;
00152         BYTE *user_data;        <span class="comment">/* see dbsetuserdata() and dbgetuserdata() */</span>
00153         <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *dbbuf;   <span class="comment">/* is dynamic!                   */</span>
00154         <span class="keywordtype">int</span> dbbufsz;
00155         <span class="keywordtype">int</span> command_state;
00156         TDS_INT text_size;
00157         TDS_INT text_sent;
00158         DBTYPEINFO typeinfo;
00159         <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> avail_flag;
00160         DBOPTION *dbopts;
00161         DBSTRING *dboptcmd;
00162         BCP_HOSTFILEINFO *hostfileinfo;
00163         DB_BCPINFO *bcpinfo;
00164         DBREMOTE_PROC *rpc;
00165         DBUSMALLINT envchange_rcv;
00166         <span class="keywordtype">char</span> dbcurdb[DBMAXNAME + 1];
00167         <span class="keywordtype">char</span> servcharset[DBMAXNAME + 1];
00168         FILE *ftos;
00169         DB_DBCHKINTR_FUNC chkintr;
00170         DB_DBHNDLINTR_FUNC hndlintr;
00171         
00173         <span class="keywordtype">int</span> msdblib;
00174 
00175         <span class="keywordtype">int</span> ntimeouts;
00176 
00178         NULLREP         nullreps[MAXBINDTYPES];
00179 };
00180 
00181 <span class="comment">/*</span>
00182 <span class="comment"> * internal prototypes</span>
00183 <span class="comment"> */</span>
00184 <span class="keywordtype">int</span> <a class="code" href="a00281.html#ga20">dbperror</a> (DBPROCESS *dbproc, DBINT msgno, <span class="keywordtype">long</span> errnum, ...);
00185 <span class="keywordtype">int</span> _dblib_handle_info_message(<span class="keyword">const</span> TDSCONTEXT * ctxptr, <a class="code" href="a00144.html">TDSSOCKET</a> * tdsptr, TDSMESSAGE* msgptr);
00186 <span class="keywordtype">int</span> _dblib_handle_err_message(<span class="keyword">const</span> TDSCONTEXT * ctxptr, <a class="code" href="a00144.html">TDSSOCKET</a> * tdsptr, TDSMESSAGE* msgptr);
00187 <span class="keywordtype">int</span> <a class="code" href="a00281.html#ga21">_dblib_check_and_handle_interrupt</a>(<span class="keywordtype">void</span> * vdbproc);
00188 
00189 <span class="keywordtype">void</span> _dblib_setTDS_version(TDSLOGIN * tds_login, DBINT version);
00190 
00191 DBINT _convert_char(<span class="keywordtype">int</span> srctype, BYTE * src, <span class="keywordtype">int</span> destype, BYTE * dest, DBINT destlen);
00192 DBINT _convert_intn(<span class="keywordtype">int</span> srctype, BYTE * src, <span class="keywordtype">int</span> destype, BYTE * dest, DBINT destlen);
00193 
00194 RETCODE _bcp_clear_storage(DBPROCESS * dbproc);
00195 RETCODE _bcp_get_prog_data(DBPROCESS * dbproc);
00196 
00197 <span class="keyword">extern</span> MHANDLEFUNC _dblib_msg_handler;
00198 <span class="keyword">extern</span> EHANDLEFUNC _dblib_err_handler;
00199 
00200 <span class="preprocessor">#define CHECK_PARAMETER(x, msg, ret)    if (!(x)) { dbperror(dbproc, (msg), 0); return ret; }</span>
00201 <span class="preprocessor"></span><span class="preprocessor">#define CHECK_DBPROC() CHECK_PARAMETER(dbproc, SYBENULL, FAIL)</span>
00202 <span class="preprocessor"></span><span class="preprocessor">#define CHECK_NULP(x, func, param_num, ret)     if (!(x)) { dbperror(dbproc, SYBENULP, 0, func, (int) param_num); return ret; }</span>
00203 <span class="preprocessor"></span><span class="preprocessor">#define CHECK_PARAMETER_NOPROC(x, msg)  if (!(x)) { dbperror(NULL, (msg), 0); return FAIL; }</span>
00204 <span class="preprocessor"></span><span class="preprocessor">#define DBPERROR_RETURN(x, msg) if (x) { dbperror(dbproc, (msg), 0); return FAIL; }</span>
00205 <span class="preprocessor"></span><span class="preprocessor">#define DBPERROR_RETURN3(x, msg, a, b, c)       if (x) { dbperror(dbproc, (msg), 0, a, b, c); return FAIL; }</span>
00206 <span class="preprocessor"></span>
00207 
00208 <span class="preprocessor">#ifdef __cplusplus</span>
00209 <span class="preprocessor"></span><span class="preprocessor">#if 0</span>
00210 <span class="preprocessor"></span>{
00211 <span class="preprocessor">#endif</span>
00212 <span class="preprocessor"></span>}
00213 <span class="preprocessor">#endif</span>
00214 <span class="preprocessor"></span>
00215 <span class="preprocessor">#if defined(__GNUC__) &amp;&amp; __GNUC__ &gt;= 4</span>
00216 <span class="preprocessor"></span><span class="preprocessor">#pragma GCC visibility pop</span>
00217 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00218 <span class="preprocessor"></span>
00219 <span class="preprocessor">#endif</span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed May 7 19:22:09 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>