1/*
2 *  GetTypeInfo.c
3 *
4 *  $Id: GetTypeInfo.c,v 1.4 2006/01/20 15:58:35 source Exp $
5 *
6 *  SQLGetTypeInfo trace functions
7 *
8 *  The iODBC driver manager.
9 *
10 *  Copyright (C) 1996-2006 by OpenLink Software <iodbc@openlinksw.com>
11 *  All Rights Reserved.
12 *
13 *  This software is released under the terms of either of the following
14 *  licenses:
15 *
16 *      - GNU Library General Public License (see LICENSE.LGPL)
17 *      - The BSD License (see LICENSE.BSD).
18 *
19 *  Note that the only valid version of the LGPL license as far as this
20 *  project is concerned is the original GNU Library General Public License
21 *  Version 2, dated June 1991.
22 *
23 *  While not mandated by the BSD license, any patches you make to the
24 *  iODBC source code may be contributed back into the iODBC project
25 *  at your discretion. Contributions will benefit the Open Source and
26 *  Data Access community as a whole. Submissions may be made at:
27 *
28 *      http://www.iodbc.org
29 *
30 *
31 *  GNU Library Generic Public License Version 2
32 *  ============================================
33 *  This library is free software; you can redistribute it and/or
34 *  modify it under the terms of the GNU Library General Public
35 *  License as published by the Free Software Foundation; only
36 *  Version 2 of the License dated June 1991.
37 *
38 *  This library is distributed in the hope that it will be useful,
39 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
40 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
41 *  Library General Public License for more details.
42 *
43 *  You should have received a copy of the GNU Library General Public
44 *  License along with this library; if not, write to the Free
45 *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
46 *
47 *
48 *  The BSD License
49 *  ===============
50 *  Redistribution and use in source and binary forms, with or without
51 *  modification, are permitted provided that the following conditions
52 *  are met:
53 *
54 *  1. Redistributions of source code must retain the above copyright
55 *     notice, this list of conditions and the following disclaimer.
56 *  2. Redistributions in binary form must reproduce the above copyright
57 *     notice, this list of conditions and the following disclaimer in
58 *     the documentation and/or other materials provided with the
59 *     distribution.
60 *  3. Neither the name of OpenLink Software Inc. nor the names of its
61 *     contributors may be used to endorse or promote products derived
62 *     from this software without specific prior written permission.
63 *
64 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
65 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
66 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
67 *  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OPENLINK OR
68 *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
69 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
70 *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
71 *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
72 *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
73 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
74 *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
75 */
76
77#include "trace.h"
78
79
80void
81_trace_typeinfo (SQLSMALLINT type)
82{
83  char *ptr = "unknown type";
84
85  switch (type)
86    {
87      _S (SQL_ALL_TYPES);
88      _S (SQL_BIGINT);
89      _S (SQL_BINARY);
90      _S (SQL_BIT);
91      _S (SQL_CHAR);
92#if (ODBCVER < 0x0300)
93      _S (SQL_DATE);
94#else
95      _S (SQL_DATETIME);
96#endif
97      _S (SQL_DECIMAL);
98      _S (SQL_DOUBLE);
99      _S (SQL_FLOAT);
100#if (ODBCVER >= 0x0350)
101      _S (SQL_GUID);
102#endif
103      _S (SQL_INTEGER);
104      _S (SQL_LONGVARBINARY);
105      _S (SQL_LONGVARCHAR);
106      _S (SQL_NUMERIC);
107      _S (SQL_REAL);
108      _S (SQL_SMALLINT);
109#if (ODBCVER < 0x0300)
110      _S (SQL_TIME);
111#else
112      _S (SQL_INTERVAL);
113#endif
114      _S (SQL_TIMESTAMP);
115      _S (SQL_TINYINT);
116#if ODBCVER >= 0x0300
117      _S (SQL_TYPE_DATE);
118      _S (SQL_TYPE_TIME);
119      _S (SQL_TYPE_TIMESTAMP);
120#endif
121      _S (SQL_VARBINARY);
122      _S (SQL_VARCHAR);
123      _S (SQL_WCHAR);
124      _S (SQL_WLONGVARCHAR);
125      _S (SQL_WVARCHAR);
126    }
127
128  trace_emit ("\t\t%-15.15s   %d (%s)\n", "SQLSMALLINT ", (int) type, ptr);
129}
130
131
132void
133trace_SQLGetTypeInfo (int trace_leave, int retcode,
134  SQLHSTMT		  hstmt,
135  SQLSMALLINT		  fSqlType)
136{
137  /* Trace function */
138  _trace_print_function (en_GetTypeInfo, trace_leave, retcode);
139
140  /* Trace Arguments */
141  _trace_handle (SQL_HANDLE_STMT, hstmt);
142  _trace_typeinfo (fSqlType);
143}
144
145
146#if ODBCVER >= 0x0300
147void
148trace_SQLGetTypeInfoW (int trace_leave, int retcode,
149  SQLHSTMT		  hstmt,
150  SQLSMALLINT		  fSqlType)
151{
152  /* Trace function */
153  _trace_print_function (en_GetTypeInfoW, trace_leave, retcode);
154
155  /* Trace Arguments */
156  _trace_handle (SQL_HANDLE_STMT, hstmt);
157  _trace_typeinfo (fSqlType);
158}
159#endif
160