Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 42465 | Differences between
and this patch

Collapse All | Expand All

(-)V75_00_08.orig/MaxDB_ORG/sys/src/SAPDB/RunTime/RTE_SystemLinux.h (-4 / +4 lines)
Lines 32-41 Link Here
32
#ifndef RTE_SYSTEMLINUX_H
32
#ifndef RTE_SYSTEMLINUX_H
33
#define RTE_SYSTEMLINUX_H
33
#define RTE_SYSTEMLINUX_H
34
34
35
#if defined(__cplusplus)
36
extern "C" 
37
#endif
38
39
/*!
35
/*!
40
   Own coroutine context used only if a assembly coroutine switch code exists
36
   Own coroutine context used only if a assembly coroutine switch code exists
41
 */
37
 */
Lines 45-50 struct RTE_OwnCoroutineContext Link Here
45
    void (*addr)() ;  /*!< Initial entry address */
41
    void (*addr)() ;  /*!< Initial entry address */
46
};
42
};
47
43
44
#if defined(__cplusplus)
45
extern "C" 
46
#endif
47
48
/*!
48
/*!
49
  @brief Implementation of own context setup interface
49
  @brief Implementation of own context setup interface
50
50
(-)V75_00_08.orig/MaxDB_ORG/usr/config/WebAgent75.ini (+202 lines)
Line 0 Link Here
1
[HTTP]
2
Browsable=0
3
DefaultDocument=index.html
4
DocumentRoot=/opt/sdb/programs/web/Documents
5
enableWebDAV=1
6
LogDirectory=/var/log/sapdb/wa
7
LogRequests=1
8
MaxThreads=10
9
MimeTypeFile=/opt/sdb/programs/web/config/mime.types
10
Port=9999
11
12
[BIT32\COMServices]
13
[BIT64\COMServices]
14
15
[BIT32\Global]
16
LogFile=/var/log/sapdb/wa/wa32.log
17
ConfLogFile=/var/log/sapdb/wa/waconf32.log
18
logWithInfo=0
19
20
[BIT64\Global]
21
LogFile=/var/log/sapdb/wa/wa64.log
22
ConfLogFile=/var/log/sapdb/wa/waconf64.log
23
logWithInfo=0
24
25
[BIT32\Resources]
26
documentRoot=/opt/sdb/programs/web/Documents/WARoot
27
MIMETypes=/opt/sdb/programs/web/config/mime.types
28
29
[BIT32\GeneralSettings]
30
developerMode=1
31
AdminUserName=admin
32
AdminUserPassword=init
33
34
[BIT64\Resources]
35
documentRoot=/opt/sdb/programs/web/Documents/WARoot
36
MIMETypes=/opt/sdb/programs/web/config/mime.types
37
38
[BIT64\GeneralSettings]
39
developerMode=1
40
AdminUserName=admin
41
AdminUserPassword=init
42
43
[BIT32\Services]
44
45
[BIT64\Services]
46
47
[BIT32\Services\waecho]
48
ExitFunction=wd83Exit
49
InitFunction=wd83Init
50
Library=/opt/sdb/programs/web/lib/waecho.so
51
LibraryType=C
52
LogFile=/var/log/sapdb/wa/waecho32.log
53
ServiceFunction=wd83Service
54
ServiceName=waecho
55
SessionPool=
56
serviceStart=1
57
useFastCGIForCookiePath=1
58
withSSL=0
59
sslURL=
60
webSessionTimeout=0
61
62
[BIT64\Services\waecho]
63
ExitFunction=wd83Exit
64
InitFunction=wd83Init
65
Library=/opt/sdb/programs/web/lib/lib64/waecho.so
66
LibraryType=C
67
LogFile=/var/log/sapdb/wa/waecho64.log
68
ServiceFunction=wd83Service
69
ServiceName=waecho
70
SessionPool=
71
serviceStart=1
72
useFastCGIForCookiePath=1
73
withSSL=0
74
sslURL=
75
webSessionTimeout=0
76
77
[BIT32\Services\websql]
78
ExitFunction=WebSQLExit
79
InitFunction=WebSQLInit
80
Library=/opt/sdb/programs/web/lib/websql.so
81
LibraryType=CPP
82
LogFile=/var/log/sapdb/wa/websql32.log
83
ServiceFunction=WebSQLService
84
ServiceName=websql
85
SessionPool=
86
withSSL=0
87
sslURL=https://your-server/websql
88
webSessionTimeout=3200
89
serviceStart=1
90
useFastCGIForCookiePath=0
91
connectionPoolTimeout=3200
92
93
94
[BIT64\Services\websql]
95
ExitFunction=WebSQLExit
96
InitFunction=WebSQLInit
97
Library=/opt/sdb/programs/web/lib/lib64/websql.so
98
LibraryType=CPP
99
LogFile=/var/log/sapdb/wa/websql64.log
100
ServiceFunction=WebSQLService
101
ServiceName=websql
102
SessionPool=
103
withSSL=0
104
sslURL=https://your-server/websql
105
webSessionTimeout=3200
106
serviceStart=1
107
useFastCGIForCookiePath=0
108
connectionPoolTimeout=3200
109
odbcDriver=SAP DB 7.3
110
111
112
[BIT32\Services\webdbm]
113
ExitFunction=DBMWeb_Service_Exit
114
InitFunction=DBMWeb_Service_Init
115
Library=/opt/sdb/programs/web/lib/webdbm.so
116
LibraryType=CPP
117
LogFile=/var/log/sapdb/wa/webdbm32.log
118
ServiceFunction=DBMWeb_Service_Service
119
ServiceName=webdbm
120
SessionPool=
121
serviceStart=1
122
useFastCGIForCookiePath=0
123
withSSL=0
124
sslURL=
125
webSessionTimeout=0
126
127
128
[BIT64\Services\webdbm]
129
ExitFunction=DBMWeb_Service_Exit
130
InitFunction=DBMWeb_Service_Init
131
Library=/opt/sdb/programs/web/lib/lib64/webdbm.so
132
LibraryType=CPP
133
LogFile=/var/log/sapdb/wa/webdbm64.log
134
ServiceFunction=DBMWeb_Service_Service
135
ServiceName=webdbm
136
SessionPool=
137
serviceStart=1
138
useFastCGIForCookiePath=0
139
withSSL=0
140
sslURL=
141
webSessionTimeout=0
142
143
[BIT32\Services\webdav]
144
ExitFunction=WDVHandlerExit
145
InitFunction=WDVHandlerInit
146
Library=/opt/sdb/programs/web/lib/libwdvhandler.so
147
LibraryType=C
148
LogFile=/var/log/sapdb/wa/webdav32.log
149
ServiceFunction=WDVHandlerService
150
ServiceName=WebDAV
151
SessionPool=
152
serviceStart=1
153
useFastCGIForCookiePath=0
154
withSSL=0
155
sslURL=
156
webSessionTimeout=0
157
IDXSearchLib=/opt/sdb/programs/web/lib/sapdbxis
158
159
160
[BIT64\Services\webdav]
161
ExitFunction=WDVHandlerExit
162
InitFunction=WDVHandlerInit
163
Library=/opt/sdb/programs/web/lib/lib64/libwdvhandler.so
164
LibraryType=C
165
LogFile=/var/log/sapdb/wa/webdav64.log
166
ServiceFunction=WDVHandlerService
167
ServiceName=webdav
168
SessionPool=
169
serviceStart=1
170
useFastCGIForCookiePath=0
171
withSSL=0
172
sslURL=
173
webSessionTimeout=0
174
IDXSearchLib=/opt/sdb/programs/web/lib/lib64/sapdbxis
175
176
[BIT32\SessionPools]
177
178
[BIT64\SessionPools]
179
180
[BIT32\SessionPools\WebDAV]
181
serverDB=YourServerDB
182
serverNode=YourServerNode
183
userId=Your SYSDBA
184
password=Your SYSDBA Password
185
datasource=
186
driver=SAP DB
187
autocommit=Off
188
poolType=ODBC
189
poolSize=10
190
sqlTraceFilename=
191
192
[BIT64\SessionPools\WebDAV]
193
serverDB=YourServerDB
194
serverNode=YourServerNode
195
userId=Your SYSDBA
196
password=Your SYSDBA Password
197
datasource=
198
driver=SAP DB
199
autocommit=Off
200
poolType=ODBC
201
poolSize=10
202
sqlTraceFilename=
(-)V75_00_08.orig/MaxDB_ORG/usr/config/instweb (+117 lines)
Line 0 Link Here
1
package SAPDB::Install::Web;
2
3
sub BEGIN {
4
        @ISA = ('SAPDB::Install::Exporter');
5
        @EXPORT = ('$product','$release','%path','%liste','%packages','%opt','$usage','$default_owner',
6
			 '$default_group','$path_instreg','preinstall','postinstall','register',
7
			 'unregister','preuninstall', 'postuninstall');		
8
}
9
10
import SAPDB::Install::StdIO;
11
import SAPDB::Install::System;
12
import SAPDB::Install::Registry;
13
14
$product='SAP DB Web Tools';
15
16
$release='7.3';
17
18
$path{'installation path'}=getSysProgPath().'/sapdb/web'; #default without std progpath 
19
20
$packages{'installation path'}='SAPDBWEB.TGZ';
21
22
$liste{'installation path'}='webagent.lst';
23
24
$opt{'installation path'}='i'; 
25
26
$usage = "sapdbinstall [-h] [-i <inst_path> ]\n 
27
   install $product $release\n  
28
   -h\t\t\tshow this
29
   -i <inst_path>\tinstall software into <inst_path>\n";
30
31
$default_owner='root';
32
33
$default_group='root';
34
35
36
$path_instreg = getSysProgPath().'/sapdb/install'; 
37
38
39
sub preinstall{
40
	checkServices();	
41
}
42
43
sub postinstall{
44
	my $path=$path{'installation path'};
45
	my $regpath=$path;
46
	$regpath=~s/\/$//;
47
	if($^O=~/.*mswin.*/i){
48
		my @tmp;
49
		my $tmpdir=getSysTmpPath();
50
		$tmpdir=~s/\//\\\\/g;
51
		$regpath=~s/\//\\\\/g;
52
		open(REG,$path.'/WA.reg') or print2stderr("cannot open \"$path/WA.reg\"\n") and diesoft($SAPDB::Install::diemsg);
53
		while(chomp($_=<REG>)){
54
			$_=~s/C:\\\\sapdb-web\\\\WebAgent/$regpath/g;
55
			$_=~s/C:\\\\sapdb-web/$regpath/g;
56
			$_=~s/c:\\\\temp/$tmpdir/g;
57
			push(@tmp,$_);
58
		}
59
		close(REG);
60
		open(REG,'>'.$path.'/WA.reg') or print2stderr("cannot open \"$path/WA.reg\" to write\n") and diesoft($SAPDB::Install::diemsg);
61
		foreach my $line (@tmp){
62
			print REG $line."\n";
63
		}
64
		close(REG);
65
	}
66
	else{
67
		my @tmp;
68
		open(REG,$path.'/WebAgent73.ini') or print2stderr("cannot open \"$path/WebAgent73.ini\"\n") and diesoft($SAPDB::Install::diemsg);
69
		while(chomp($_=<REG>)){
70
			$_=~s/\$OWN(32|64)\/WebAgent/$regpath/;
71
			$_=~s/\$OWN(32|64)/$regpath/;
72
			push(@tmp,$_);
73
		}
74
		close(REG);
75
		open(REG,'>'.$path.'/WebAgent73.ini') or print2stderr("cannot open \"$path/WebAgent73.ini\" to write\n") and diesoft($SAPDB::Install::diemsg);
76
		foreach my $line (@tmp){
77
			print REG $line."\n";
78
		}
79
		close(REG);
80
	}
81
}
82
83
84
85
sub register{
86
	my $path=$path{'installation path'};
87
	if($^O=~/.*mswin.*/i){
88
		$path=~s/\//\\/g;
89
		$ENV{PATH}=$path."\\pgm;".$ENV{PATH};
90
		callsystem("regedit -s \"".$path."\\WA.reg\"");
91
		callsystem("odbcreg.exe \"SAP DB Web 7.3\" -i -p \"".$path."\\pgm\"");
92
	}
93
	else{
94
		unless(-d '/usr/spool/sql/ini'){
95
			makedir('/usr/spool/sql/ini',0775) or print2stderr("cannot create \"/usr/spool/sql/ini\"") and diesoft($SAPDB::Install::diemsg);
96
		}
97
		copy($path.'/WebAgent73.ini','/usr/spool/sql/ini');
98
	}
99
}	
100
101
102
sub unregister{
103
		
104
}
105
106
107
sub preuninstall{
108
	
109
}
110
111
112
sub postuninstall{
113
	
114
}
115
116
117
1;
(-)V75_00_08.orig/MaxDB_ORG/usr/config/mime.types (+113 lines)
Line 0 Link Here
1
# This file controls what MIME types are sent to the client for the
2
# given file extensions.  Sending the correct MIME type to the client
3
# is important so they know how to handle the content of the file.
4
# Extra types can either be added here or by using an AddType directive
5
# in your config files. For more information about MIME types
6
# please read RFC 2045, 2046, 2047, 2048, and 2077.
7
8
# MIME type			Extension
9
application/activemessage
10
application/andrew-inset
11
application/applefile
12
application/atomicmail
13
application/dca-rft
14
application/dec-dx
15
application/mac-binhex40	hqx
16
application/mac-compactpro	cpt
17
application/macwriteii
18
application/msword		doc
19
application/msexcel		xls
20
application/news-message-id
21
application/news-transmission
22
application/octet-stream	bin dms lha lzh exe class
23
application/oda			oda
24
application/pdf			pdf
25
application/postscript		ai eps ps
26
application/powerpoint		ppt
27
application/remote-printing
28
application/rtf			rtf
29
application/slate
30
application/smil		smi smil sml
31
application/wita
32
application/wordperfect5.1
33
application/x-bcpio		bcpio
34
application/x-cdlink		vcd
35
application/x-compress
36
application/x-cpio		cpio
37
application/x-csh		csh
38
application/x-director		dcr dir dxr
39
application/x-dvi		dvi
40
application/x-gtar		gtar
41
application/x-gzip
42
application/x-hdf		hdf
43
application/x-javascript	js
44
application/x-koan		skp skd skt skm
45
application/x-latex		latex
46
application/x-mif		mif
47
application/x-netcdf		nc cdf
48
application/x-sh		sh
49
application/x-shar		shar
50
application/x-stuffit		sit
51
application/x-sv4cpio		sv4cpio
52
application/x-sv4crc		sv4crc
53
application/x-tar		tar
54
application/x-tcl		tcl
55
application/x-tex		tex
56
application/x-texinfo		texinfo texi
57
application/x-troff		t tr roff
58
application/x-troff-man		man
59
application/x-troff-me		me
60
application/x-troff-ms		ms
61
application/x-ustar		ustar
62
application/x-wais-source	src
63
application/zip			zip
64
audio/basic			au snd
65
audio/midi			mid midi kar
66
audio/mpeg			mpga mp2 mp3
67
audio/x-aiff			aif aiff aifc
68
audio/x-pn-realaudio		ram
69
audio/x-pn-realaudio-plugin	rpm
70
audio/x-realaudio		ra
71
audio/x-wav			wav
72
chemical/x-pdb			pdb xyz
73
image/gif			gif
74
image/ief			ief
75
image/jpeg			jpeg jpg jpe
76
image/png			png
77
image/tiff			tiff tif
78
image/x-cmu-raster		ras
79
image/x-portable-anymap		pnm
80
image/x-portable-bitmap		pbm
81
image/x-portable-graymap	pgm
82
image/x-portable-pixmap		ppm
83
image/x-rgb			rgb
84
image/x-xbitmap			xbm
85
image/x-xpixmap			xpm
86
image/x-xwindowdump		xwd
87
message/external-body
88
message/news
89
message/partial
90
message/rfc822
91
model/iges			igs iges
92
model/vrml			wrl vrml
93
model/mesh			msh mesh silo
94
multipart/alternative
95
multipart/appledouble
96
multipart/digest
97
multipart/mixed
98
multipart/parallel
99
text/css			css
100
text/html			html htm
101
text/plain			txt
102
text/richtext			rtx
103
text/tab-separated-values	tsv
104
text/x-setext			etx
105
text/x-sgml			sgml sgm
106
text/xml			xml dtd
107
video/mpeg			mpeg mpg mpe
108
video/quicktime			qt mov
109
video/x-msvideo			avi
110
video/x-sgi-movie		movie
111
x-conference/x-cooltalk		ice
112
113
# This is a comment. I love comments.
(-)V75_00_08.orig/MaxDB_ORG/usr/incl/WINDOWS.H (+114 lines)
Line 0 Link Here
1
#ifndef DEBUG
2
3
#endif
4
#ifndef APWIN                     /* don't reinclude    */
5
#define APWIN
6
#ifndef DEBUG
7
8
#endif
9
10
#ifdef WININC
11
#  include <windows.h>              /* normal windows.h    */
12
#  ifdef WIN32
13
#    include <windowsx.h>         /* windows extensions  */
14
#    define GetCurrentTask	(HTASK)GetCurrentProcess
15
#    define GetDOSEnvironment	GetEnvironmentStrings
16
#    define PCALL
17
#  else
18
#    define PCALL PASCAL
19
#  endif
20
#else                             /* not windows         */
21
/******* Common definitions and typedefs **********************/
22
23
#ifndef VOID
24
#  define VOID                void
25
#endif
26
27
#ifdef WIN
28
#  define LONG long
29
#endif
30
31
#ifndef _DWORD
32
#  define _DWORD
33
/*   typedef unsigned long       DWORD;  PTS 1119281 WORDs have 2 bytes */
34
   typedef unsigned int       DWORD;
35
#endif
36
37
#ifndef _UINT
38
#  define _UINT
39
   typedef unsigned int        UINT;
40
#endif
41
42
#ifdef PC
43
#  define FAR                 _far
44
#  define NEAR                _near
45
#  define PASCAL              _pascal
46
#  define CDECL               _cdecl
47
#ifndef WINAPI
48
#  define WINAPI              _far _pascal
49
#endif
50
#  define CALLBACK            _far _pascal
51
#  define EXPORT	      _export
52
#else
53
#  define FAR
54
#  define NEAR
55
#  define PASCAL
56
#  define CDECL
57
#ifndef WINAPI
58
#  define WINAPI
59
#endif
60
#  define CALLBACK
61
#  define EXPORT
62
#endif
63
#define PCALL PASCAL
64
65
/****** Simple types & common helper macros ********************/
66
67
typedef int                 BOOL;
68
#ifndef FALSE
69
#define FALSE               0
70
#endif
71
#ifndef TRUE
72
#define TRUE                1
73
#endif
74
75
typedef unsigned char       BYTE;
76
typedef unsigned short      WORD;
77
78
#define LOBYTE(w)           ((BYTE)(w))
79
#define HIBYTE(w)           ((BYTE)(((UINT)(w) >> 8) & 0xFF))
80
81
#define LOWORD(l)           ((WORD)(DWORD)(l))
82
#define HIWORD(l)           ((WORD)((((DWORD)(l)) >> 16) & 0xFFFF))
83
84
#define MAKELONG(low, high) ((LONG)(((WORD)(low)) |\
85
			    (((DWORD)((WORD)(high))) << 16)))
86
87
#define max(a,b)           (((a) > (b)) ? (a) : (b))
88
#define min(a,b)            (((a) < (b)) ? (a) : (b))
89
90
/****** Common pointer types **********************************/
91
92
#ifndef NULL
93
#define NULL                0
94
#endif
95
96
/****** Common handle types *************************************/
97
98
#ifndef __HANDLE_T__
99
#define __HANDLE_T__ __HANDLE_T__
100
typedef void *               HANDLE;
101
#endif
102
typedef UINT                    HWND;
103
#include <wchar.h>
104
#ifndef _WCHAR
105
#define _WCHAR
106
typedef wchar_t WCHAR;
107
#endif
108
typedef const WCHAR FAR *   LPCWSTR;
109
110
#endif /* ifdef not WIN */
111
112
#endif /* ifdef APWIN */
113
114
/* end of apwin.h */
(-)V75_00_08.orig/MaxDB_ORG/usr/incl/sql.h (+869 lines)
Line 0 Link Here
1
/*****************************************************************
2
** SQL.H - This is the the main include for ODBC Core functions.
3
**
4
** preconditions:
5
**      #include "windows.h"
6
**
7
** (C) Copyright 1990 - 1999 By Microsoft Corp.
8
**
9
**      Updated 5/12/93 for 2.00 specification
10
**      Updated 5/23/94 for 2.01 specification
11
**      Updated 11/10/94 for 2.10 specification
12
**      Updated 04/10/95 for 2.50 specification
13
**      Updated 6/6/95  for 3.00 specification
14
**		Updated 10/22/97 for 3.51 specification
15
\if EMIT_LICENCE
16
17
18
    ========== licence begin  GPL
19
    Copyright (C) 2003 SAP AG
20
21
    This program is free software; you can redistribute it and/or
22
    modify it under the terms of the GNU General Public License
23
    as published by the Free Software Foundation; either version 2
24
    of the License, or (at your option) any later version.
25
26
    This program is distributed in the hope that it will be useful,
27
    but WITHOUT ANY WARRANTY; without even the implied warranty of
28
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
29
    GNU General Public License for more details.
30
31
    You should have received a copy of the GNU General Public License
32
    along with this program; if not, write to the Free Software
33
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
34
    ========== licence end
35
36
\endif
37
*********************************************************************/
38
39
/* Adopted for SAP DB */
40
41
#ifndef __SQL_SAPDB
42
#define __SQL_SAPDB
43
#define __SQL          /* prevent include of another sql.h */
44
45
/*
46
* ODBCVER  ODBC version number (0x0351).   To exclude
47
*          definitions introduced in version 3.5 (or above)
48
*          #define ODBCVER 0x0300 before #including <sql.h>
49
*/
50
#ifndef ODBCVER
51
#define ODBCVER 0x0351
52
#endif
53
54
#ifndef __SQLTYPES
55
#include "sqltypes.h"
56
#endif
57
58
#ifdef __cplusplus
59
extern "C" { 			/* Assume C declarations for C++   */
60
#endif  /* __cplusplus */
61
62
/* special length/indicator values */
63
#define SQL_NULL_DATA             (-1)
64
#define SQL_DATA_AT_EXEC          (-2)
65
66
67
/* return values from functions */
68
#define SQL_SUCCESS                0
69
#define SQL_SUCCESS_WITH_INFO      1
70
#if (ODBCVER >= 0x0300)
71
#define SQL_NO_DATA              100
72
#endif
73
#define SQL_ERROR                 (-1)
74
#define SQL_INVALID_HANDLE        (-2)
75
76
#define SQL_STILL_EXECUTING        2
77
#define SQL_NEED_DATA             99
78
79
/* test for SQL_SUCCESS or SQL_SUCCESS_WITH_INFO */
80
#define SQL_SUCCEEDED(rc) (((rc)&(~1))==0)
81
82
/* flags for null-terminated string */
83
#define SQL_NTS                   (-3)
84
#define SQL_NTSL                  (-3L)
85
86
/* maximum message length */
87
#define SQL_MAX_MESSAGE_LENGTH   512
88
89
/* date/time length constants */
90
#if (ODBCVER >= 0x0300)
91
#define SQL_DATE_LEN           10
92
#define SQL_TIME_LEN            8  /* add P+1 if precision is nonzero */
93
#define SQL_TIMESTAMP_LEN      19  /* add P+1 if precision is nonzero */
94
#endif
95
96
/* handle type identifiers */
97
#if (ODBCVER >= 0x0300)
98
#define SQL_HANDLE_ENV             1
99
#define SQL_HANDLE_DBC             2
100
#define SQL_HANDLE_STMT            3
101
#define SQL_HANDLE_DESC            4
102
#endif
103
104
/* environment attribute */
105
#if (ODBCVER >= 0x0300)
106
#define SQL_ATTR_OUTPUT_NTS    10001
107
#endif
108
109
/* connection attributes */
110
#if (ODBCVER >= 0x0300)
111
#define SQL_ATTR_AUTO_IPD      10001
112
#define SQL_ATTR_METADATA_ID   10014
113
#endif  /* ODBCVER >= 0x0300 */
114
115
/* statement attributes */
116
#if (ODBCVER >= 0x0300)
117
#define SQL_ATTR_APP_ROW_DESC       10010
118
#define SQL_ATTR_APP_PARAM_DESC     10011
119
#define SQL_ATTR_IMP_ROW_DESC       10012
120
#define SQL_ATTR_IMP_PARAM_DESC     10013
121
#define SQL_ATTR_CURSOR_SCROLLABLE  (-1)
122
#define SQL_ATTR_CURSOR_SENSITIVITY (-2)
123
#endif
124
125
/* SQL_ATTR_CURSOR_SCROLLABLE values */
126
#if (ODBCVER >= 0x0300)
127
#define SQL_NONSCROLLABLE			0
128
#define SQL_SCROLLABLE				1
129
#endif  /* ODBCVER >= 0x0300 */
130
131
/* identifiers of fields in the SQL descriptor */
132
#if (ODBCVER >= 0x0300)
133
#define SQL_DESC_COUNT                  1001
134
#define SQL_DESC_TYPE                   1002
135
#define SQL_DESC_LENGTH                 1003
136
#define SQL_DESC_OCTET_LENGTH_PTR       1004
137
#define SQL_DESC_PRECISION              1005
138
#define SQL_DESC_SCALE                  1006
139
#define SQL_DESC_DATETIME_INTERVAL_CODE 1007
140
#define SQL_DESC_NULLABLE               1008
141
#define SQL_DESC_INDICATOR_PTR          1009
142
#define SQL_DESC_DATA_PTR               1010
143
#define SQL_DESC_NAME                   1011
144
#define SQL_DESC_UNNAMED                1012
145
#define SQL_DESC_OCTET_LENGTH           1013
146
#define SQL_DESC_ALLOC_TYPE             1099
147
#endif
148
149
/* identifiers of fields in the diagnostics area */
150
#if (ODBCVER >= 0x0300)
151
#define SQL_DIAG_RETURNCODE        1
152
#define SQL_DIAG_NUMBER            2
153
#define SQL_DIAG_ROW_COUNT         3
154
#define SQL_DIAG_SQLSTATE          4
155
#define SQL_DIAG_NATIVE            5
156
#define SQL_DIAG_MESSAGE_TEXT      6
157
#define SQL_DIAG_DYNAMIC_FUNCTION  7
158
#define SQL_DIAG_CLASS_ORIGIN      8
159
#define SQL_DIAG_SUBCLASS_ORIGIN   9
160
#define SQL_DIAG_CONNECTION_NAME  10
161
#define SQL_DIAG_SERVER_NAME      11
162
#define SQL_DIAG_DYNAMIC_FUNCTION_CODE 12
163
#endif
164
165
/* dynamic function codes */
166
#if (ODBCVER >= 0x0300)
167
#define SQL_DIAG_ALTER_DOMAIN			3
168
#define SQL_DIAG_ALTER_TABLE            4
169
#define SQL_DIAG_CALL					7
170
#define SQL_DIAG_CREATE_ASSERTION		6
171
#define SQL_DIAG_CREATE_CHARACTER_SET	8
172
#define SQL_DIAG_CREATE_COLLATION		10
173
#define SQL_DIAG_CREATE_DOMAIN			23
174
#define SQL_DIAG_CREATE_INDEX          (-1)
175
#define SQL_DIAG_CREATE_SCHEMA			64
176
#define SQL_DIAG_CREATE_TABLE          77
177
#define SQL_DIAG_CREATE_TRANSLATION		79
178
#define SQL_DIAG_CREATE_VIEW           84
179
#define SQL_DIAG_DELETE_WHERE          19
180
#define	SQL_DIAG_DROP_ASSERTION			24
181
#define	SQL_DIAG_DROP_CHARACTER_SET		25
182
#define	SQL_DIAG_DROP_COLLATION			26
183
#define	SQL_DIAG_DROP_DOMAIN			27
184
#define SQL_DIAG_DROP_INDEX            (-2)
185
#define SQL_DIAG_DROP_SCHEMA			31
186
#define SQL_DIAG_DROP_TABLE            32
187
#define SQL_DIAG_DROP_TRANSLATION      33
188
#define SQL_DIAG_DROP_VIEW             36
189
#define SQL_DIAG_DYNAMIC_DELETE_CURSOR 38
190
#define SQL_DIAG_DYNAMIC_UPDATE_CURSOR 81
191
#define SQL_DIAG_GRANT                 48
192
#define SQL_DIAG_INSERT                50
193
#define SQL_DIAG_REVOKE                59
194
#define SQL_DIAG_SELECT_CURSOR         85
195
#define SQL_DIAG_UNKNOWN_STATEMENT      0
196
#define SQL_DIAG_UPDATE_WHERE          82
197
#endif  /* ODBCVER >= 0x0300 */
198
199
/* SQL data type codes */
200
#define	SQL_UNKNOWN_TYPE	0
201
#define SQL_CHAR            1
202
#define SQL_NUMERIC         2
203
#define SQL_DECIMAL         3
204
#define SQL_INTEGER         4
205
#define SQL_SMALLINT        5
206
#define SQL_FLOAT           6
207
#define SQL_REAL            7
208
#define SQL_DOUBLE          8
209
#if (ODBCVER >= 0x0300)
210
#define SQL_DATETIME        9
211
#endif
212
#define SQL_VARCHAR        12
213
214
/* One-parameter shortcuts for date/time data types */
215
#if (ODBCVER >= 0x0300)
216
#define SQL_TYPE_DATE      91
217
#define SQL_TYPE_TIME      92
218
#define SQL_TYPE_TIMESTAMP 93
219
#endif
220
221
/* Statement attribute values for cursor sensitivity */
222
#if (ODBCVER >= 0x0300)
223
#define SQL_UNSPECIFIED     0
224
#define SQL_INSENSITIVE     1
225
#define SQL_SENSITIVE       2
226
#endif
227
228
/* GetTypeInfo() request for all data types */
229
#define SQL_ALL_TYPES       0
230
231
/* Default conversion code for SQLBindCol(), SQLBindParam() and SQLGetData() */
232
#if (ODBCVER >= 0x0300)
233
#define SQL_DEFAULT        99
234
#endif
235
236
/* SQLGetData() code indicating that the application row descriptor
237
 * specifies the data type
238
 */
239
#if (ODBCVER >= 0x0300)
240
#define SQL_ARD_TYPE      (-99)
241
#endif
242
243
/* SQL date/time type subcodes */
244
#if (ODBCVER >= 0x0300)
245
#define SQL_CODE_DATE       1
246
#define SQL_CODE_TIME       2
247
#define SQL_CODE_TIMESTAMP  3
248
#endif
249
250
/* CLI option values */
251
#if (ODBCVER >= 0x0300)
252
#define SQL_FALSE           0
253
#define SQL_TRUE            1
254
#endif
255
256
/* values of NULLABLE field in descriptor */
257
#define SQL_NO_NULLS        0
258
#define SQL_NULLABLE        1
259
260
/* Value returned by SQLGetTypeInfo() to denote that it is
261
 * not known whether or not a data type supports null values.
262
 */
263
#define SQL_NULLABLE_UNKNOWN  2
264
265
/* Values returned by SQLGetTypeInfo() to show WHERE clause
266
 * supported
267
 */
268
#if (ODBCVER >= 0x0300)
269
#define SQL_PRED_NONE     0
270
#define SQL_PRED_CHAR     1
271
#define SQL_PRED_BASIC    2
272
#endif
273
274
/* values of UNNAMED field in descriptor */
275
#if (ODBCVER >= 0x0300)
276
#define SQL_NAMED           0
277
#define SQL_UNNAMED         1
278
#endif
279
280
/* values of ALLOC_TYPE field in descriptor */
281
#if (ODBCVER >= 0x0300)
282
#define SQL_DESC_ALLOC_AUTO 1
283
#define SQL_DESC_ALLOC_USER 2
284
#endif
285
286
/* FreeStmt() options */
287
#define SQL_CLOSE           0
288
#define SQL_DROP            1
289
#define SQL_UNBIND          2
290
#define SQL_RESET_PARAMS    3
291
292
/* Codes used for FetchOrientation in SQLFetchScroll(),
293
   and in SQLDataSources()
294
*/
295
#define SQL_FETCH_NEXT      1
296
#define SQL_FETCH_FIRST     2
297
298
/* Other codes used for FetchOrientation in SQLFetchScroll() */
299
#define SQL_FETCH_LAST      3
300
#define SQL_FETCH_PRIOR     4
301
#define SQL_FETCH_ABSOLUTE  5
302
#define SQL_FETCH_RELATIVE  6
303
304
/* SQLEndTran() options */
305
#define SQL_COMMIT          0
306
#define SQL_ROLLBACK        1
307
308
/* null handles returned by SQLAllocHandle() */
309
#define SQL_NULL_HENV       0
310
#define SQL_NULL_HDBC       0
311
#define SQL_NULL_HSTMT      0
312
#if (ODBCVER >= 0x0300)
313
#define SQL_NULL_HDESC      0
314
#endif
315
316
/* null handle used in place of parent handle when allocating HENV */
317
#if (ODBCVER >= 0x0300)
318
#define SQL_NULL_HANDLE     0L
319
#endif
320
321
/* Values that may appear in the result set of SQLSpecialColumns() */
322
#define SQL_SCOPE_CURROW    0
323
#define SQL_SCOPE_TRANSACTION 1
324
#define SQL_SCOPE_SESSION   2
325
326
#define SQL_PC_UNKNOWN      0
327
#if (ODBCVER >= 0x0300)
328
#define SQL_PC_NON_PSEUDO   1
329
#endif
330
#define SQL_PC_PSEUDO       2
331
332
/* Reserved value for the IdentifierType argument of SQLSpecialColumns() */
333
#if (ODBCVER >= 0x0300)
334
#define SQL_ROW_IDENTIFIER  1
335
#endif
336
337
/* Reserved values for UNIQUE argument of SQLStatistics() */
338
#define SQL_INDEX_UNIQUE    0
339
#define SQL_INDEX_ALL       1
340
341
/* Values that may appear in the result set of SQLStatistics() */
342
#define SQL_INDEX_CLUSTERED 1
343
#define SQL_INDEX_HASHED    2
344
#define SQL_INDEX_OTHER     3
345
346
/* SQLGetFunctions() values to identify ODBC APIs */
347
#define SQL_API_SQLALLOCCONNECT         1
348
#define SQL_API_SQLALLOCENV             2
349
#if (ODBCVER >= 0x0300)
350
#define SQL_API_SQLALLOCHANDLE       1001
351
#endif
352
#define SQL_API_SQLALLOCSTMT            3
353
#define SQL_API_SQLBINDCOL              4
354
#if (ODBCVER >= 0x0300)
355
#define SQL_API_SQLBINDPARAM         1002
356
#endif
357
#define SQL_API_SQLCANCEL               5
358
#if (ODBCVER >= 0x0300)
359
#define SQL_API_SQLCLOSECURSOR       1003
360
#define SQL_API_SQLCOLATTRIBUTE         6
361
#endif
362
#define SQL_API_SQLCOLUMNS             40
363
#define SQL_API_SQLCONNECT              7
364
#if (ODBCVER >= 0x0300)
365
#define SQL_API_SQLCOPYDESC          1004
366
#endif
367
#define SQL_API_SQLDATASOURCES         57
368
#define SQL_API_SQLDESCRIBECOL          8
369
#define SQL_API_SQLDISCONNECT           9
370
#if (ODBCVER >= 0x0300)
371
#define SQL_API_SQLENDTRAN           1005
372
#endif
373
#define SQL_API_SQLERROR               10
374
#define SQL_API_SQLEXECDIRECT          11
375
#define SQL_API_SQLEXECUTE             12
376
#define SQL_API_SQLFETCH               13
377
#if (ODBCVER >= 0x0300)
378
#define SQL_API_SQLFETCHSCROLL       1021
379
#endif
380
#define SQL_API_SQLFREECONNECT         14
381
#define SQL_API_SQLFREEENV             15
382
#if (ODBCVER >= 0x0300)
383
#define SQL_API_SQLFREEHANDLE        1006
384
#endif
385
#define SQL_API_SQLFREESTMT            16
386
#if (ODBCVER >= 0x0300)
387
#define SQL_API_SQLGETCONNECTATTR    1007
388
#endif
389
#define SQL_API_SQLGETCONNECTOPTION    42
390
#define SQL_API_SQLGETCURSORNAME       17
391
#define SQL_API_SQLGETDATA             43
392
#if (ODBCVER >= 0x0300)
393
#define SQL_API_SQLGETDESCFIELD      1008
394
#define SQL_API_SQLGETDESCREC        1009
395
#define SQL_API_SQLGETDIAGFIELD      1010
396
#define SQL_API_SQLGETDIAGREC        1011
397
#define SQL_API_SQLGETENVATTR        1012
398
#endif
399
#define SQL_API_SQLGETFUNCTIONS        44
400
#define SQL_API_SQLGETINFO             45
401
#if (ODBCVER >= 0x0300)
402
#define SQL_API_SQLGETSTMTATTR       1014
403
#endif
404
#define SQL_API_SQLGETSTMTOPTION       46
405
#define SQL_API_SQLGETTYPEINFO         47
406
#define SQL_API_SQLNUMRESULTCOLS       18
407
#define SQL_API_SQLPARAMDATA           48
408
#define SQL_API_SQLPREPARE             19
409
#define SQL_API_SQLPUTDATA             49
410
#define SQL_API_SQLROWCOUNT            20
411
#if (ODBCVER >= 0x0300)
412
#define SQL_API_SQLSETCONNECTATTR    1016
413
#endif
414
#define SQL_API_SQLSETCONNECTOPTION    50
415
#define SQL_API_SQLSETCURSORNAME       21
416
#if (ODBCVER >= 0x0300)
417
#define SQL_API_SQLSETDESCFIELD      1017
418
#define SQL_API_SQLSETDESCREC        1018
419
#define SQL_API_SQLSETENVATTR        1019
420
#endif
421
#define SQL_API_SQLSETPARAM            22
422
#if (ODBCVER >= 0x0300)
423
#define SQL_API_SQLSETSTMTATTR       1020
424
#endif
425
#define SQL_API_SQLSETSTMTOPTION       51
426
#define SQL_API_SQLSPECIALCOLUMNS      52
427
#define SQL_API_SQLSTATISTICS          53
428
#define SQL_API_SQLTABLES              54
429
#define SQL_API_SQLTRANSACT            23
430
431
/* Information requested by SQLGetInfo() */
432
#if (ODBCVER >= 0x0300)
433
#define SQL_MAX_DRIVER_CONNECTIONS           0
434
#define SQL_MAXIMUM_DRIVER_CONNECTIONS		SQL_MAX_DRIVER_CONNECTIONS
435
#define SQL_MAX_CONCURRENT_ACTIVITIES        1
436
#define SQL_MAXIMUM_CONCURRENT_ACTIVITIES	SQL_MAX_CONCURRENT_ACTIVITIES
437
#endif
438
#define SQL_DATA_SOURCE_NAME                 2
439
#define SQL_FETCH_DIRECTION                  8
440
#define SQL_SERVER_NAME                     13
441
#define SQL_SEARCH_PATTERN_ESCAPE           14
442
#define SQL_DBMS_NAME                       17
443
#define SQL_DBMS_VER                        18
444
#define SQL_ACCESSIBLE_TABLES               19
445
#define SQL_ACCESSIBLE_PROCEDURES        	20
446
#define SQL_CURSOR_COMMIT_BEHAVIOR          23
447
#define SQL_DATA_SOURCE_READ_ONLY           25
448
#define SQL_DEFAULT_TXN_ISOLATION           26
449
#define SQL_IDENTIFIER_CASE                 28
450
#define SQL_IDENTIFIER_QUOTE_CHAR           29
451
#define SQL_MAX_COLUMN_NAME_LEN             30
452
#define SQL_MAXIMUM_COLUMN_NAME_LENGTH		SQL_MAX_COLUMN_NAME_LEN
453
#define SQL_MAX_CURSOR_NAME_LEN             31
454
#define SQL_MAXIMUM_CURSOR_NAME_LENGTH		SQL_MAX_CURSOR_NAME_LEN
455
#define SQL_MAX_SCHEMA_NAME_LEN             32
456
#define SQL_MAXIMUM_SCHEMA_NAME_LENGTH		SQL_MAX_SCHEMA_NAME_LEN
457
#define SQL_MAX_CATALOG_NAME_LEN            34
458
#define SQL_MAXIMUM_CATALOG_NAME_LENGTH		SQL_MAX_CATALOG_NAME_LEN
459
#define SQL_MAX_TABLE_NAME_LEN              35
460
#define SQL_SCROLL_CONCURRENCY              43
461
#define SQL_TXN_CAPABLE                     46
462
#define SQL_TRANSACTION_CAPABLE				SQL_TXN_CAPABLE
463
#define SQL_USER_NAME                       47
464
#define SQL_TXN_ISOLATION_OPTION            72
465
#define SQL_TRANSACTION_ISOLATION_OPTION	SQL_TXN_ISOLATION_OPTION
466
#define SQL_INTEGRITY                       73
467
#define SQL_GETDATA_EXTENSIONS              81
468
#define SQL_NULL_COLLATION                  85
469
#define SQL_ALTER_TABLE                     86
470
#define SQL_ORDER_BY_COLUMNS_IN_SELECT      90
471
#define SQL_SPECIAL_CHARACTERS              94
472
#define SQL_MAX_COLUMNS_IN_GROUP_BY         97
473
#define SQL_MAXIMUM_COLUMNS_IN_GROUP_BY		SQL_MAX_COLUMNS_IN_GROUP_BY
474
#define SQL_MAX_COLUMNS_IN_INDEX            98
475
#define SQL_MAXIMUM_COLUMNS_IN_INDEX		SQL_MAX_COLUMNS_IN_INDEX
476
#define SQL_MAX_COLUMNS_IN_ORDER_BY         99
477
#define SQL_MAXIMUM_COLUMNS_IN_ORDER_BY		SQL_MAX_COLUMNS_IN_ORDER_BY
478
#define SQL_MAX_COLUMNS_IN_SELECT          100
479
#define SQL_MAXIMUM_COLUMNS_IN_SELECT	   SQL_MAX_COLUMNS_IN_SELECT
480
#define SQL_MAX_COLUMNS_IN_TABLE           101
481
#define SQL_MAX_INDEX_SIZE                 102
482
#define SQL_MAXIMUM_INDEX_SIZE			   SQL_MAX_INDEX_SIZE
483
#define SQL_MAX_ROW_SIZE                   104
484
#define SQL_MAXIMUM_ROW_SIZE			   SQL_MAX_ROW_SIZE
485
#define SQL_MAX_STATEMENT_LEN              105
486
#define SQL_MAXIMUM_STATEMENT_LENGTH	   SQL_MAX_STATEMENT_LEN
487
#define SQL_MAX_TABLES_IN_SELECT           106
488
#define SQL_MAXIMUM_TABLES_IN_SELECT	   SQL_MAX_TABLES_IN_SELECT
489
#define SQL_MAX_USER_NAME_LEN              107
490
#define SQL_MAXIMUM_USER_NAME_LENGTH	   SQL_MAX_USER_NAME_LEN
491
#if (ODBCVER >= 0x0300)
492
#define SQL_OJ_CAPABILITIES                115
493
#define SQL_OUTER_JOIN_CAPABILITIES		   SQL_OJ_CAPABILITIES
494
#endif /* ODBCVER >= 0x0300 */
495
496
#if (ODBCVER >= 0x0300)
497
#define SQL_XOPEN_CLI_YEAR               10000
498
#define SQL_CURSOR_SENSITIVITY           10001
499
#define SQL_DESCRIBE_PARAMETER           10002
500
#define SQL_CATALOG_NAME                 10003
501
#define SQL_COLLATION_SEQ                10004
502
#define SQL_MAX_IDENTIFIER_LEN           10005
503
#define SQL_MAXIMUM_IDENTIFIER_LENGTH	 SQL_MAX_IDENTIFIER_LEN
504
#endif /* ODBCVER >= 0x0300 */
505
506
/* SQL_ALTER_TABLE bitmasks */
507
#if (ODBCVER >= 0x0200)
508
#define SQL_AT_ADD_COLUMN                   	0x00000001L
509
#define SQL_AT_DROP_COLUMN                  	0x00000002L
510
#endif /* ODBCVER >= 0x0200 */
511
512
#if (ODBCVER >= 0x0300)
513
#define SQL_AT_ADD_CONSTRAINT               	0x00000008L
514
515
/* The following bitmasks are ODBC extensions and defined in sqlext.h
516
*#define	SQL_AT_COLUMN_SINGLE					0x00000020L
517
*#define	SQL_AT_ADD_COLUMN_DEFAULT				0x00000040L
518
*#define	SQL_AT_ADD_COLUMN_COLLATION				0x00000080L
519
*#define	SQL_AT_SET_COLUMN_DEFAULT				0x00000100L
520
*#define	SQL_AT_DROP_COLUMN_DEFAULT				0x00000200L
521
*#define	SQL_AT_DROP_COLUMN_CASCADE				0x00000400L
522
*#define	SQL_AT_DROP_COLUMN_RESTRICT				0x00000800L
523
*#define SQL_AT_ADD_TABLE_CONSTRAINT				0x00001000L
524
*#define SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE		0x00002000L
525
*#define SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT		0x00004000L
526
*#define SQL_AT_CONSTRAINT_NAME_DEFINITION			0x00008000L
527
*#define SQL_AT_CONSTRAINT_INITIALLY_DEFERRED		0x00010000L
528
*#define SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE		0x00020000L
529
*#define SQL_AT_CONSTRAINT_DEFERRABLE				0x00040000L
530
*#define SQL_AT_CONSTRAINT_NON_DEFERRABLE			0x00080000L
531
*/
532
#endif  /* ODBCVER >= 0x0300 */
533
534
535
/* SQL_ASYNC_MODE values */
536
#if (ODBCVER >= 0x0300)
537
#define SQL_AM_NONE                         0
538
#define SQL_AM_CONNECTION                   1
539
#define SQL_AM_STATEMENT                    2
540
#endif
541
542
/* SQL_CURSOR_COMMIT_BEHAVIOR values */
543
#define SQL_CB_DELETE                       0
544
#define SQL_CB_CLOSE                        1
545
#define SQL_CB_PRESERVE                     2
546
547
/* SQL_FETCH_DIRECTION bitmasks */
548
#define SQL_FD_FETCH_NEXT                   0x00000001L
549
#define SQL_FD_FETCH_FIRST                  0x00000002L
550
#define SQL_FD_FETCH_LAST                   0x00000004L
551
#define SQL_FD_FETCH_PRIOR                  0x00000008L
552
#define SQL_FD_FETCH_ABSOLUTE               0x00000010L
553
#define SQL_FD_FETCH_RELATIVE               0x00000020L
554
555
/* SQL_GETDATA_EXTENSIONS bitmasks */
556
#define SQL_GD_ANY_COLUMN                   0x00000001L
557
#define SQL_GD_ANY_ORDER                    0x00000002L
558
559
/* SQL_IDENTIFIER_CASE values */
560
#define SQL_IC_UPPER                        1
561
#define SQL_IC_LOWER                        2
562
#define SQL_IC_SENSITIVE                    3
563
#define SQL_IC_MIXED                        4
564
565
/* SQL_OJ_CAPABILITIES bitmasks */
566
/* NB: this means 'outer join', not what  you may be thinking */
567
568
569
#if (ODBCVER >= 0x0201)
570
#define SQL_OJ_LEFT                         0x00000001L
571
#define SQL_OJ_RIGHT                        0x00000002L
572
#define SQL_OJ_FULL                         0x00000004L
573
#define SQL_OJ_NESTED                       0x00000008L
574
#define SQL_OJ_NOT_ORDERED                  0x00000010L
575
#define SQL_OJ_INNER                        0x00000020L
576
#define SQL_OJ_ALL_COMPARISON_OPS           0x00000040L
577
#endif
578
579
/* SQL_SCROLL_CONCURRENCY bitmasks */
580
#define SQL_SCCO_READ_ONLY                  0x00000001L
581
#define SQL_SCCO_LOCK                       0x00000002L
582
#define SQL_SCCO_OPT_ROWVER                 0x00000004L
583
#define SQL_SCCO_OPT_VALUES                 0x00000008L
584
585
/* SQL_TXN_CAPABLE values */
586
#define SQL_TC_NONE                         0
587
#define SQL_TC_DML                          1
588
#define SQL_TC_ALL                          2
589
#define SQL_TC_DDL_COMMIT                   3
590
#define SQL_TC_DDL_IGNORE                   4
591
592
/* SQL_TXN_ISOLATION_OPTION bitmasks */
593
#define SQL_TXN_READ_UNCOMMITTED            0x00000001L
594
#define SQL_TRANSACTION_READ_UNCOMMITTED	SQL_TXN_READ_UNCOMMITTED
595
#define SQL_TXN_READ_COMMITTED              0x00000002L
596
#define SQL_TRANSACTION_READ_COMMITTED		SQL_TXN_READ_COMMITTED
597
#define SQL_TXN_REPEATABLE_READ             0x00000004L
598
#define SQL_TRANSACTION_REPEATABLE_READ		SQL_TXN_REPEATABLE_READ
599
#define SQL_TXN_SERIALIZABLE                0x00000008L
600
#define SQL_TRANSACTION_SERIALIZABLE		SQL_TXN_SERIALIZABLE
601
602
/* SQL_NULL_COLLATION values */
603
#define SQL_NC_HIGH                         0
604
#define SQL_NC_LOW                          1
605
606
#ifndef RC_INVOKED
607
608
SQLRETURN  SQL_API SQLAllocConnect(SQLHENV EnvironmentHandle,
609
           SQLHDBC *ConnectionHandle);
610
611
SQLRETURN  SQL_API SQLAllocEnv(SQLHENV *EnvironmentHandle);
612
613
#if (ODBCVER >= 0x0300)
614
SQLRETURN  SQL_API SQLAllocHandle(SQLSMALLINT HandleType,
615
           SQLHANDLE InputHandle, SQLHANDLE *OutputHandle);
616
#endif
617
618
SQLRETURN  SQL_API SQLAllocStmt(SQLHDBC ConnectionHandle,
619
           SQLHSTMT *StatementHandle);
620
621
SQLRETURN  SQL_API SQLBindCol(SQLHSTMT StatementHandle,
622
		   SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType,
623
		   SQLPOINTER TargetValue, SQLLEN BufferLength,
624
	   	   SQLLEN *StrLen_or_Ind);
625
626
#if (ODBCVER >= 0x0300)
627
SQLRETURN  SQL_API SQLBindParam(SQLHSTMT StatementHandle,
628
           SQLUSMALLINT ParameterNumber, SQLSMALLINT ValueType,
629
           SQLSMALLINT ParameterType, SQLULEN LengthPrecision,
630
           SQLSMALLINT ParameterScale, SQLPOINTER ParameterValue,
631
           SQLLEN *StrLen_or_Ind);
632
#endif
633
634
SQLRETURN  SQL_API SQLCancel(SQLHSTMT StatementHandle);
635
636
#if (ODBCVER >= 0x0300)
637
SQLRETURN  SQL_API SQLCloseCursor(SQLHSTMT StatementHandle);
638
639
#ifdef _WIN64
640
SQLRETURN  SQL_API SQLColAttribute (SQLHSTMT StatementHandle,
641
           SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier,
642
           SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength,
643
           SQLSMALLINT *StringLength, SQLLEN *NumericAttribute);
644
#else
645
SQLRETURN  SQL_API SQLColAttribute (SQLHSTMT StatementHandle,
646
           SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier,
647
           SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength,
648
           SQLSMALLINT *StringLength, SQLPOINTER NumericAttribute);
649
#endif
650
#endif
651
652
653
SQLRETURN  SQL_API SQLColumns(SQLHSTMT StatementHandle,
654
           SQLCHAR *CatalogName, SQLSMALLINT NameLength1,
655
           SQLCHAR *SchemaName, SQLSMALLINT NameLength2,
656
           SQLCHAR *TableName, SQLSMALLINT NameLength3,
657
           SQLCHAR *ColumnName, SQLSMALLINT NameLength4);
658
659
660
SQLRETURN  SQL_API SQLConnect(SQLHDBC ConnectionHandle,
661
           SQLCHAR *ServerName, SQLSMALLINT NameLength1,
662
           SQLCHAR *UserName, SQLSMALLINT NameLength2,
663
           SQLCHAR *Authentication, SQLSMALLINT NameLength3);
664
665
#if (ODBCVER >= 0x0300)
666
SQLRETURN  SQL_API SQLCopyDesc(SQLHDESC SourceDescHandle,
667
           SQLHDESC TargetDescHandle);
668
#endif
669
670
SQLRETURN  SQL_API SQLDataSources(SQLHENV EnvironmentHandle,
671
           SQLUSMALLINT Direction, SQLCHAR *ServerName,
672
           SQLSMALLINT BufferLength1, SQLSMALLINT *NameLength1,
673
           SQLCHAR *Description, SQLSMALLINT BufferLength2,
674
           SQLSMALLINT *NameLength2);
675
676
SQLRETURN  SQL_API SQLDescribeCol(SQLHSTMT StatementHandle,
677
           SQLUSMALLINT ColumnNumber, SQLCHAR *ColumnName,
678
           SQLSMALLINT BufferLength, SQLSMALLINT *NameLength,
679
           SQLSMALLINT *DataType, SQLULEN *ColumnSize,
680
           SQLSMALLINT *DecimalDigits, SQLSMALLINT *Nullable);
681
682
SQLRETURN  SQL_API SQLDisconnect(SQLHDBC ConnectionHandle);
683
684
#if (ODBCVER >= 0x0300)
685
SQLRETURN  SQL_API SQLEndTran(SQLSMALLINT HandleType, SQLHANDLE Handle,
686
           SQLSMALLINT CompletionType);
687
#endif
688
689
SQLRETURN  SQL_API SQLError(SQLHENV EnvironmentHandle,
690
           SQLHDBC ConnectionHandle, SQLHSTMT StatementHandle,
691
           SQLCHAR *Sqlstate, SQLINTEGER *NativeError,
692
           SQLCHAR *MessageText, SQLSMALLINT BufferLength,
693
           SQLSMALLINT *TextLength);
694
695
SQLRETURN  SQL_API SQLExecDirect(SQLHSTMT StatementHandle,
696
           SQLCHAR *StatementText, SQLINTEGER TextLength);
697
698
SQLRETURN  SQL_API SQLExecute(SQLHSTMT StatementHandle);
699
700
SQLRETURN  SQL_API SQLFetch(SQLHSTMT StatementHandle);
701
702
#if (ODBCVER >= 0x0300)
703
SQLRETURN  SQL_API SQLFetchScroll(SQLHSTMT StatementHandle,
704
           SQLSMALLINT FetchOrientation, SQLLEN FetchOffset);
705
#endif
706
707
SQLRETURN  SQL_API SQLFreeConnect(SQLHDBC ConnectionHandle);
708
709
SQLRETURN  SQL_API SQLFreeEnv(SQLHENV EnvironmentHandle);
710
711
#if (ODBCVER >= 0x0300)
712
SQLRETURN  SQL_API SQLFreeHandle(SQLSMALLINT HandleType, SQLHANDLE Handle);
713
#endif
714
715
SQLRETURN  SQL_API SQLFreeStmt(SQLHSTMT StatementHandle,
716
           SQLUSMALLINT Option);
717
718
#if (ODBCVER >= 0x0300)
719
SQLRETURN  SQL_API SQLGetConnectAttr(SQLHDBC ConnectionHandle,
720
           SQLINTEGER Attribute, SQLPOINTER Value,
721
           SQLINTEGER BufferLength, SQLINTEGER *StringLength);
722
#endif
723
724
SQLRETURN  SQL_API SQLGetConnectOption(SQLHDBC ConnectionHandle,
725
           SQLUSMALLINT Option, SQLPOINTER Value);
726
727
SQLRETURN  SQL_API SQLGetCursorName(SQLHSTMT StatementHandle,
728
           SQLCHAR *CursorName, SQLSMALLINT BufferLength,
729
           SQLSMALLINT *NameLength);
730
731
SQLRETURN  SQL_API SQLGetData(SQLHSTMT StatementHandle,
732
           SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType,
733
           SQLPOINTER TargetValue, SQLLEN BufferLength,
734
           SQLLEN *StrLen_or_Ind);
735
736
#if (ODBCVER >= 0x0300)
737
SQLRETURN  SQL_API SQLGetDescField(SQLHDESC DescriptorHandle,
738
           SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier,
739
           SQLPOINTER Value, SQLINTEGER BufferLength,
740
           SQLINTEGER *StringLength);
741
742
SQLRETURN  SQL_API SQLGetDescRec(SQLHDESC DescriptorHandle,
743
           SQLSMALLINT RecNumber, SQLCHAR *Name,
744
           SQLSMALLINT BufferLength, SQLSMALLINT *StringLength,
745
           SQLSMALLINT *Type, SQLSMALLINT *SubType,
746
           SQLLEN     *Length, SQLSMALLINT *Precision,
747
           SQLSMALLINT *Scale, SQLSMALLINT *Nullable);
748
749
SQLRETURN  SQL_API SQLGetDiagField(SQLSMALLINT HandleType, SQLHANDLE Handle,
750
           SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier,
751
           SQLPOINTER DiagInfo, SQLSMALLINT BufferLength,
752
           SQLSMALLINT *StringLength);
753
754
SQLRETURN  SQL_API SQLGetDiagRec(SQLSMALLINT HandleType, SQLHANDLE Handle,
755
           SQLSMALLINT RecNumber, SQLCHAR *Sqlstate,
756
           SQLINTEGER *NativeError, SQLCHAR *MessageText,
757
           SQLSMALLINT BufferLength, SQLSMALLINT *TextLength);
758
759
SQLRETURN  SQL_API SQLGetEnvAttr(SQLHENV EnvironmentHandle,
760
           SQLINTEGER Attribute, SQLPOINTER Value,
761
           SQLINTEGER BufferLength, SQLINTEGER *StringLength);
762
#endif  /* ODBCVER >= 0x0300 */
763
764
SQLRETURN  SQL_API SQLGetFunctions(SQLHDBC ConnectionHandle,
765
           SQLUSMALLINT FunctionId, SQLUSMALLINT *Supported);
766
767
SQLRETURN  SQL_API SQLGetInfo(SQLHDBC ConnectionHandle,
768
           SQLUSMALLINT InfoType, SQLPOINTER InfoValue,
769
           SQLSMALLINT BufferLength, SQLSMALLINT *StringLength);
770
771
#if (ODBCVER >= 0x0300)
772
SQLRETURN  SQL_API SQLGetStmtAttr(SQLHSTMT StatementHandle,
773
           SQLINTEGER Attribute, SQLPOINTER Value,
774
           SQLINTEGER BufferLength, SQLINTEGER *StringLength);
775
#endif  /* ODBCVER >= 0x0300 */
776
777
SQLRETURN  SQL_API SQLGetStmtOption(SQLHSTMT StatementHandle,
778
           SQLUSMALLINT Option, SQLPOINTER Value);
779
780
SQLRETURN  SQL_API SQLGetTypeInfo(SQLHSTMT StatementHandle,
781
           SQLSMALLINT DataType);
782
783
SQLRETURN  SQL_API SQLNumResultCols(SQLHSTMT StatementHandle,
784
           SQLSMALLINT *ColumnCount);
785
786
SQLRETURN  SQL_API SQLParamData(SQLHSTMT StatementHandle,
787
           SQLPOINTER *Value);
788
789
SQLRETURN  SQL_API SQLPrepare(SQLHSTMT StatementHandle,
790
           SQLCHAR *StatementText, SQLINTEGER TextLength);
791
792
SQLRETURN  SQL_API SQLPutData(SQLHSTMT StatementHandle,
793
           SQLPOINTER Data, SQLLEN StrLen_or_Ind);
794
795
SQLRETURN  SQL_API SQLRowCount(SQLHSTMT StatementHandle,
796
	   SQLLEN* RowCount);
797
798
#if (ODBCVER >= 0x0300)
799
SQLRETURN  SQL_API SQLSetConnectAttr(SQLHDBC ConnectionHandle,
800
           SQLINTEGER Attribute, SQLPOINTER Value,
801
           SQLINTEGER StringLength);
802
#endif /* ODBCVER >= 0x0300 */
803
804
SQLRETURN  SQL_API SQLSetConnectOption(SQLHDBC ConnectionHandle,
805
           SQLUSMALLINT Option, SQLULEN Value);
806
807
SQLRETURN  SQL_API SQLSetCursorName(SQLHSTMT StatementHandle,
808
           SQLCHAR *CursorName, SQLSMALLINT NameLength);
809
810
#if (ODBCVER >= 0x0300)
811
SQLRETURN  SQL_API SQLSetDescField(SQLHDESC DescriptorHandle,
812
           SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier,
813
           SQLPOINTER Value, SQLINTEGER BufferLength);
814
815
SQLRETURN  SQL_API SQLSetDescRec(SQLHDESC DescriptorHandle,
816
           SQLSMALLINT RecNumber, SQLSMALLINT Type,
817
           SQLSMALLINT SubType, SQLLEN Length,
818
           SQLSMALLINT Precision, SQLSMALLINT Scale,
819
           SQLPOINTER Data, SQLLEN *StringLength,
820
           SQLLEN *Indicator);
821
822
SQLRETURN  SQL_API SQLSetEnvAttr(SQLHENV EnvironmentHandle,
823
           SQLINTEGER Attribute, SQLPOINTER Value,
824
           SQLINTEGER StringLength);
825
#endif /* ODBCVER >= 0x0300 */
826
827
SQLRETURN  SQL_API SQLSetParam(SQLHSTMT StatementHandle,
828
           SQLUSMALLINT ParameterNumber, SQLSMALLINT ValueType,
829
           SQLSMALLINT ParameterType, SQLULEN LengthPrecision,
830
           SQLSMALLINT ParameterScale, SQLPOINTER ParameterValue,
831
           SQLLEN *StrLen_or_Ind);
832
833
#if (ODBCVER >= 0x0300)
834
SQLRETURN  SQL_API SQLSetStmtAttr(SQLHSTMT StatementHandle,
835
           SQLINTEGER Attribute, SQLPOINTER Value,
836
           SQLINTEGER StringLength);
837
#endif
838
839
SQLRETURN  SQL_API SQLSetStmtOption(SQLHSTMT StatementHandle,
840
           SQLUSMALLINT Option, SQLULEN Value);
841
842
SQLRETURN  SQL_API SQLSpecialColumns(SQLHSTMT StatementHandle,
843
           SQLUSMALLINT IdentifierType, SQLCHAR *CatalogName,
844
           SQLSMALLINT NameLength1, SQLCHAR *SchemaName,
845
           SQLSMALLINT NameLength2, SQLCHAR *TableName,
846
           SQLSMALLINT NameLength3, SQLUSMALLINT Scope,
847
           SQLUSMALLINT Nullable);
848
849
SQLRETURN  SQL_API SQLStatistics(SQLHSTMT StatementHandle,
850
           SQLCHAR *CatalogName, SQLSMALLINT NameLength1,
851
           SQLCHAR *SchemaName, SQLSMALLINT NameLength2,
852
           SQLCHAR *TableName, SQLSMALLINT NameLength3,
853
           SQLUSMALLINT Unique, SQLUSMALLINT Reserved);
854
855
SQLRETURN  SQL_API SQLTables(SQLHSTMT StatementHandle,
856
           SQLCHAR *CatalogName, SQLSMALLINT NameLength1,
857
           SQLCHAR *SchemaName, SQLSMALLINT NameLength2,
858
           SQLCHAR *TableName, SQLSMALLINT NameLength3,
859
           SQLCHAR *TableType, SQLSMALLINT NameLength4);
860
861
SQLRETURN  SQL_API SQLTransact(SQLHENV EnvironmentHandle,
862
           SQLHDBC ConnectionHandle, SQLUSMALLINT CompletionType);
863
864
#endif  /* RC_INVOKED */
865
866
#ifdef __cplusplus
867
}                                    /* End of extern "C" { */
868
#endif  /* __cplusplus */
869
#endif	/* #ifndef __SQL */
(-)V75_00_08.orig/MaxDB_ORG/usr/incl/sqlext.h (+2103 lines)
Line 0 Link Here
1
/* SET MAXLINES = 2110 */
2
/*
3
\if EMIT_LICENCE
4
5
6
    ========== licence begin  GPL
7
    Copyright (C) 2003 SAP AG
8
9
    This program is free software; you can redistribute it and/or
10
    modify it under the terms of the GNU General Public License
11
    as published by the Free Software Foundation; either version 2
12
    of the License, or (at your option) any later version.
13
14
    This program is distributed in the hope that it will be useful,
15
    but WITHOUT ANY WARRANTY; without even the implied warranty of
16
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
    GNU General Public License for more details.
18
19
    You should have received a copy of the GNU General Public License
20
    along with this program; if not, write to the Free Software
21
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22
    ========== licence end
23
24
\endif
25
*/
26
/*****************************************************************
27
** SQLEXT.H - This is the include for applications using
28
**             the Microsoft SQL Extensions
29
**
30
** (C) Copyright 1990 - 1999 By Microsoft Corp.
31
**
32
**      Updated 05/12/93 for 2.00 specification
33
**      Updated 05/23/94 for 2.01 specification
34
**      Updated 10/27/94 for 2.10 specification
35
**      Updated 04/10/95 for 2.50 specification
36
**		Updated 07/25/95 for 3.00 specification
37
**		Updated 01/12/96 for 3.00 preliminary release
38
**		Updated 10/22/97 for 3.51 specification
39
*********************************************************************/
40
41
/* Adopted for SAP DB */
42
43
#ifndef __SQLEXT_SAPDB
44
#define __SQLEXT_SAPDB
45
#define __SQLEXT          /* prevent include of another sqlext.h */
46
47
#ifndef __SQL
48
#include "sql.h"
49
#endif
50
51
#ifdef __cplusplus
52
extern "C" {                         /* Assume C declarations for C++ */
53
#endif  /* __cplusplus */
54
55
/* generally useful constants */
56
#define SQL_SPEC_MAJOR     3     	/* Major version of specification  */
57
#define SQL_SPEC_MINOR	   52     	/* Minor version of specification  */
58
#define SQL_SPEC_STRING   "03.52"	/* String constant for version */
59
60
#define SQL_SQLSTATE_SIZE	5	/* size of SQLSTATE */
61
#define SQL_MAX_DSN_LENGTH	32	/* maximum data source name size */
62
63
#define SQL_MAX_OPTION_STRING_LENGTH    256
64
65
/* return code SQL_NO_DATA_FOUND is the same as SQL_NO_DATA */
66
#if (ODBCVER < 0x0300)
67
#define SQL_NO_DATA_FOUND	100
68
#else
69
#define SQL_NO_DATA_FOUND	SQL_NO_DATA
70
#endif
71
72
/* an end handle type */
73
#if (ODBCVER >= 0x0300)
74
#define	SQL_HANDLE_SENV		5
75
#endif  /* ODBCVER >= 0x0300 */
76
77
/* env attribute */
78
#if (ODBCVER >= 0x0300)
79
#define SQL_ATTR_ODBC_VERSION				200
80
#define SQL_ATTR_CONNECTION_POOLING			201
81
#define SQL_ATTR_CP_MATCH					202
82
#endif  /* ODBCVER >= 0x0300 */
83
84
#if (ODBCVER >= 0x0300)
85
/* values for SQL_ATTR_CONNECTION_POOLING */
86
#define SQL_CP_OFF							0UL
87
#define SQL_CP_ONE_PER_DRIVER				1UL
88
#define SQL_CP_ONE_PER_HENV					2UL
89
#define SQL_CP_DEFAULT						SQL_CP_OFF
90
91
/* values for SQL_ATTR_CP_MATCH */
92
#define SQL_CP_STRICT_MATCH					0UL
93
#define SQL_CP_RELAXED_MATCH				1UL
94
#define SQL_CP_MATCH_DEFAULT				SQL_CP_STRICT_MATCH
95
96
/* values for SQL_ATTR_ODBC_VERSION */
97
#define SQL_OV_ODBC2						2UL
98
#define	SQL_OV_ODBC3						3UL
99
#endif  /* ODBCVER >= 0x0300 */
100
101
/* connection attributes */
102
#define SQL_ACCESS_MODE                 101
103
#define SQL_AUTOCOMMIT                  102
104
#define SQL_LOGIN_TIMEOUT               103
105
#define SQL_OPT_TRACE                   104
106
#define SQL_OPT_TRACEFILE               105
107
#define SQL_TRANSLATE_DLL               106
108
#define SQL_TRANSLATE_OPTION            107
109
#define SQL_TXN_ISOLATION               108
110
#define SQL_CURRENT_QUALIFIER           109
111
#define SQL_ODBC_CURSORS                110
112
#define SQL_QUIET_MODE                  111
113
#define SQL_PACKET_SIZE                 112
114
115
/* connection attributes with new names */
116
#if (ODBCVER >= 0x0300)
117
#define SQL_ATTR_ACCESS_MODE		SQL_ACCESS_MODE
118
#define SQL_ATTR_AUTOCOMMIT			SQL_AUTOCOMMIT
119
#define SQL_ATTR_CONNECTION_TIMEOUT	113
120
#define SQL_ATTR_CURRENT_CATALOG	SQL_CURRENT_QUALIFIER
121
#define SQL_ATTR_DISCONNECT_BEHAVIOR	114
122
#define SQL_ATTR_ENLIST_IN_DTC		1207
123
#define SQL_ATTR_ENLIST_IN_XA		1208
124
#define SQL_ATTR_LOGIN_TIMEOUT		SQL_LOGIN_TIMEOUT
125
#define SQL_ATTR_ODBC_CURSORS		SQL_ODBC_CURSORS
126
#define SQL_ATTR_PACKET_SIZE		SQL_PACKET_SIZE
127
#define SQL_ATTR_QUIET_MODE			SQL_QUIET_MODE
128
#define SQL_ATTR_TRACE				SQL_OPT_TRACE
129
#define SQL_ATTR_TRACEFILE			SQL_OPT_TRACEFILE
130
#define SQL_ATTR_TRANSLATE_LIB		SQL_TRANSLATE_DLL
131
#define SQL_ATTR_TRANSLATE_OPTION	SQL_TRANSLATE_OPTION
132
#define SQL_ATTR_TXN_ISOLATION		SQL_TXN_ISOLATION
133
#endif  /* ODBCVER >= 0x0300 */
134
135
#define SQL_ATTR_CONNECTION_DEAD	1209	/* GetConnectAttr only */
136
137
#if (ODBCVER >= 0x0351)
138
/*	ODBC Driver Manager sets this connection attribute to a unicode driver
139
	(which supports SQLConnectW) when the application is an ANSI application
140
	(which calls SQLConnect, SQLDriverConnect, or SQLBrowseConnect).
141
	This is SetConnectAttr only and application does not set this attribute
142
	This attribute was introduced because some unicode driver's some APIs may
143
	need to behave differently on ANSI or Unicode applications. A unicode
144
	driver, which  has same behavior for both ANSI or Unicode applications,
145
	should return SQL_ERROR when the driver manager sets this connection
146
	attribute. When a unicode driver returns SQL_SUCCESS on this attribute,
147
	the driver manager treates ANSI and Unicode connections differently in
148
	connection pooling.
149
*/
150
#define SQL_ATTR_ANSI_APP			115
151
#endif
152
153
/* SQL_CONNECT_OPT_DRVR_START is not meaningful for 3.0 driver */
154
#if (ODBCVER < 0x0300)
155
#define SQL_CONNECT_OPT_DRVR_START      1000
156
#endif  /* ODBCVER < 0x0300 */
157
158
#if (ODBCVER < 0x0300)
159
#define SQL_CONN_OPT_MAX                SQL_PACKET_SIZE
160
#define SQL_CONN_OPT_MIN                SQL_ACCESS_MODE
161
#endif /* ODBCVER < 0x0300 */
162
163
/* SQL_ACCESS_MODE options */
164
#define SQL_MODE_READ_WRITE             0UL
165
#define SQL_MODE_READ_ONLY              1UL
166
#define SQL_MODE_DEFAULT                SQL_MODE_READ_WRITE
167
168
/* SQL_AUTOCOMMIT options */
169
#define SQL_AUTOCOMMIT_OFF              0UL
170
#define SQL_AUTOCOMMIT_ON               1UL
171
#define SQL_AUTOCOMMIT_DEFAULT          SQL_AUTOCOMMIT_ON
172
173
/* SQL_LOGIN_TIMEOUT options */
174
#define SQL_LOGIN_TIMEOUT_DEFAULT       15UL
175
176
/* SQL_OPT_TRACE options */
177
#define SQL_OPT_TRACE_OFF               0UL
178
#define SQL_OPT_TRACE_ON                1UL
179
#define SQL_OPT_TRACE_DEFAULT           SQL_OPT_TRACE_OFF
180
#define SQL_OPT_TRACE_FILE_DEFAULT      "\\SQL.LOG"
181
182
/* SQL_ODBC_CURSORS options */
183
#define SQL_CUR_USE_IF_NEEDED           0UL
184
#define SQL_CUR_USE_ODBC                1UL
185
#define SQL_CUR_USE_DRIVER              2UL
186
#define SQL_CUR_DEFAULT                 SQL_CUR_USE_DRIVER
187
188
#if (ODBCVER >= 0x0300)
189
/* values for SQL_ATTR_DISCONNECT_BEHAVIOR */
190
#define SQL_DB_RETURN_TO_POOL			0UL
191
#define SQL_DB_DISCONNECT				1UL
192
#define SQL_DB_DEFAULT					SQL_DB_RETURN_TO_POOL
193
194
/* values for SQL_ATTR_ENLIST_IN_DTC */
195
#define SQL_DTC_DONE					0L
196
#endif  /* ODBCVER >= 0x0300 */
197
198
/* values for SQL_ATTR_CONNECTION_DEAD */
199
#define SQL_CD_TRUE					1L		/* Connection is closed/dead */
200
#define SQL_CD_FALSE				0L		/* Connection is open/available */
201
202
/* values for SQL_ATTR_ANSI_APP */
203
#if (ODBCVER >= 0x0351)
204
#define SQL_AA_TRUE					1L	/* the application is an ANSI app */
205
#define SQL_AA_FALSE					0L	/* the application is a Unicode app */
206
#endif
207
208
/* statement attributes */
209
#define SQL_QUERY_TIMEOUT		0
210
#define SQL_MAX_ROWS			1
211
#define SQL_NOSCAN				2
212
#define SQL_MAX_LENGTH			3
213
#define SQL_ASYNC_ENABLE		4	/* same as SQL_ATTR_ASYNC_ENABLE */
214
#define SQL_BIND_TYPE			5
215
#define SQL_CURSOR_TYPE			6
216
#define SQL_CONCURRENCY			7
217
#define SQL_KEYSET_SIZE			8
218
#define SQL_ROWSET_SIZE			9
219
#define SQL_SIMULATE_CURSOR		10
220
#define SQL_RETRIEVE_DATA		11
221
#define SQL_USE_BOOKMARKS		12
222
#define SQL_GET_BOOKMARK		13      /*      GetStmtOption Only */
223
#define SQL_ROW_NUMBER			14      /*      GetStmtOption Only */
224
225
/* statement attributes for ODBC 3.0 */
226
#if (ODBCVER >= 0x0300)
227
#define SQL_ATTR_ASYNC_ENABLE				4
228
#define SQL_ATTR_CONCURRENCY				SQL_CONCURRENCY
229
#define SQL_ATTR_CURSOR_TYPE				SQL_CURSOR_TYPE
230
#define	SQL_ATTR_ENABLE_AUTO_IPD			15
231
#define SQL_ATTR_FETCH_BOOKMARK_PTR			16
232
#define SQL_ATTR_KEYSET_SIZE				SQL_KEYSET_SIZE
233
#define SQL_ATTR_MAX_LENGTH					SQL_MAX_LENGTH
234
#define SQL_ATTR_MAX_ROWS					SQL_MAX_ROWS
235
#define SQL_ATTR_NOSCAN						SQL_NOSCAN
236
#define SQL_ATTR_PARAM_BIND_OFFSET_PTR		17
237
#define	SQL_ATTR_PARAM_BIND_TYPE			18
238
#define SQL_ATTR_PARAM_OPERATION_PTR		19
239
#define SQL_ATTR_PARAM_STATUS_PTR			20
240
#define	SQL_ATTR_PARAMS_PROCESSED_PTR		21
241
#define	SQL_ATTR_PARAMSET_SIZE				22
242
#define SQL_ATTR_QUERY_TIMEOUT				SQL_QUERY_TIMEOUT
243
#define SQL_ATTR_RETRIEVE_DATA				SQL_RETRIEVE_DATA
244
#define SQL_ATTR_ROW_BIND_OFFSET_PTR		23
245
#define	SQL_ATTR_ROW_BIND_TYPE				SQL_BIND_TYPE
246
#define SQL_ATTR_ROW_NUMBER					SQL_ROW_NUMBER	  	/*GetStmtAttr*/
247
#define SQL_ATTR_ROW_OPERATION_PTR			24
248
#define	SQL_ATTR_ROW_STATUS_PTR				25
249
#define	SQL_ATTR_ROWS_FETCHED_PTR			26
250
#define SQL_ATTR_ROW_ARRAY_SIZE				27
251
#define SQL_ATTR_SIMULATE_CURSOR			SQL_SIMULATE_CURSOR
252
#define SQL_ATTR_USE_BOOKMARKS				SQL_USE_BOOKMARKS
253
254
#endif  /* ODBCVER >= 0x0300 */
255
256
#if (ODBCVER < 0x0300)
257
#define SQL_STMT_OPT_MAX                SQL_ROW_NUMBER
258
#define SQL_STMT_OPT_MIN	SQL_QUERY_TIMEOUT
259
#endif    	/* ODBCVER < 0x0300 */
260
261
/* New defines for SEARCHABLE column in SQLGetTypeInfo */
262
263
#if (ODBCVER >= 0x0300)
264
#define	SQL_COL_PRED_CHAR		SQL_LIKE_ONLY
265
#define	SQL_COL_PRED_BASIC		SQL_ALL_EXCEPT_LIKE
266
#endif /* ODBCVER >= 0x0300 */
267
268
269
270
/* whether an attribute is a pointer or not */
271
#if (ODBCVER >= 0x0300)
272
#define SQL_IS_POINTER							(-4)
273
#define SQL_IS_UINTEGER							(-5)
274
#define SQL_IS_INTEGER							(-6)
275
#define SQL_IS_USMALLINT						(-7)
276
#define SQL_IS_SMALLINT							(-8)
277
#endif  /* ODBCVER >= 0x0300 */
278
279
/* the value of SQL_ATTR_PARAM_BIND_TYPE */
280
#if (ODBCVER >= 0x0300)
281
#define SQL_PARAM_BIND_BY_COLUMN			0UL
282
#define SQL_PARAM_BIND_TYPE_DEFAULT			SQL_PARAM_BIND_BY_COLUMN
283
#endif  /* ODBCVER >= 0x0300 */
284
285
/* SQL_QUERY_TIMEOUT options */
286
#define SQL_QUERY_TIMEOUT_DEFAULT       0UL
287
288
/* SQL_MAX_ROWS options */
289
#define SQL_MAX_ROWS_DEFAULT            0UL
290
291
/* SQL_NOSCAN options */
292
#define SQL_NOSCAN_OFF                  0UL     /*      1.0 FALSE */
293
#define SQL_NOSCAN_ON                   1UL     /*      1.0 TRUE */
294
#define SQL_NOSCAN_DEFAULT              SQL_NOSCAN_OFF
295
296
/* SQL_MAX_LENGTH options */
297
#define SQL_MAX_LENGTH_DEFAULT          0UL
298
299
/* values for SQL_ATTR_ASYNC_ENABLE */
300
#define SQL_ASYNC_ENABLE_OFF			0UL
301
#define SQL_ASYNC_ENABLE_ON				1UL
302
#define SQL_ASYNC_ENABLE_DEFAULT        SQL_ASYNC_ENABLE_OFF
303
304
/* SQL_BIND_TYPE options */
305
#define SQL_BIND_BY_COLUMN              0UL
306
#define SQL_BIND_TYPE_DEFAULT           SQL_BIND_BY_COLUMN  /* Default value */
307
308
/* SQL_CONCURRENCY options */
309
#define SQL_CONCUR_READ_ONLY            1
310
#define SQL_CONCUR_LOCK                 2
311
#define SQL_CONCUR_ROWVER               3
312
#define SQL_CONCUR_VALUES               4
313
#define SQL_CONCUR_DEFAULT              SQL_CONCUR_READ_ONLY /* Default value */
314
315
/* SQL_CURSOR_TYPE options */
316
#define SQL_CURSOR_FORWARD_ONLY         0UL
317
#define SQL_CURSOR_KEYSET_DRIVEN        1UL
318
#define SQL_CURSOR_DYNAMIC              2UL
319
#define SQL_CURSOR_STATIC               3UL
320
#define SQL_CURSOR_TYPE_DEFAULT         SQL_CURSOR_FORWARD_ONLY /* Default value */
321
322
/* SQL_ROWSET_SIZE options */
323
#define SQL_ROWSET_SIZE_DEFAULT         1UL
324
325
/* SQL_KEYSET_SIZE options */
326
#define SQL_KEYSET_SIZE_DEFAULT         0UL
327
328
/* SQL_SIMULATE_CURSOR options */
329
#define SQL_SC_NON_UNIQUE               0UL
330
#define SQL_SC_TRY_UNIQUE               1UL
331
#define SQL_SC_UNIQUE                   2UL
332
333
/* SQL_RETRIEVE_DATA options */
334
#define SQL_RD_OFF                      0UL
335
#define SQL_RD_ON                       1UL
336
#define SQL_RD_DEFAULT                  SQL_RD_ON
337
338
/* SQL_USE_BOOKMARKS options */
339
#define SQL_UB_OFF                      0UL
340
#define	SQL_UB_ON						01UL
341
#define SQL_UB_DEFAULT                  SQL_UB_OFF
342
343
/* New values for SQL_USE_BOOKMARKS attribute */
344
#if (ODBCVER >= 0x0300)
345
#define SQL_UB_FIXED					SQL_UB_ON
346
#define SQL_UB_VARIABLE					2UL
347
#endif  /* ODBCVER >= 0x0300 */
348
349
/* extended descriptor field */
350
#if (ODBCVER >= 0x0300)
351
#define SQL_DESC_ARRAY_SIZE						20
352
#define SQL_DESC_ARRAY_STATUS_PTR				21
353
#define SQL_DESC_AUTO_UNIQUE_VALUE				SQL_COLUMN_AUTO_INCREMENT
354
#define SQL_DESC_BASE_COLUMN_NAME				22
355
#define SQL_DESC_BASE_TABLE_NAME				23
356
#define SQL_DESC_BIND_OFFSET_PTR				24
357
#define SQL_DESC_BIND_TYPE						25
358
#define SQL_DESC_CASE_SENSITIVE					SQL_COLUMN_CASE_SENSITIVE
359
#define SQL_DESC_CATALOG_NAME					SQL_COLUMN_QUALIFIER_NAME
360
#define SQL_DESC_CONCISE_TYPE					SQL_COLUMN_TYPE
361
#define SQL_DESC_DATETIME_INTERVAL_PRECISION	26
362
#define SQL_DESC_DISPLAY_SIZE					SQL_COLUMN_DISPLAY_SIZE
363
#define SQL_DESC_FIXED_PREC_SCALE				SQL_COLUMN_MONEY
364
#define SQL_DESC_LABEL							SQL_COLUMN_LABEL
365
#define SQL_DESC_LITERAL_PREFIX					27
366
#define SQL_DESC_LITERAL_SUFFIX					28
367
#define SQL_DESC_LOCAL_TYPE_NAME				29
368
#define	SQL_DESC_MAXIMUM_SCALE					30
369
#define SQL_DESC_MINIMUM_SCALE					31
370
#define SQL_DESC_NUM_PREC_RADIX					32
371
#define SQL_DESC_PARAMETER_TYPE					33
372
#define SQL_DESC_ROWS_PROCESSED_PTR				34
373
#if (ODBCVER >= 0x0350)
374
#define SQL_DESC_ROWVER							35
375
#endif /* ODBCVER >= 0x0350 */
376
#define SQL_DESC_SCHEMA_NAME					SQL_COLUMN_OWNER_NAME
377
#define SQL_DESC_SEARCHABLE						SQL_COLUMN_SEARCHABLE
378
#define SQL_DESC_TYPE_NAME						SQL_COLUMN_TYPE_NAME
379
#define SQL_DESC_TABLE_NAME						SQL_COLUMN_TABLE_NAME
380
#define SQL_DESC_UNSIGNED						SQL_COLUMN_UNSIGNED
381
#define SQL_DESC_UPDATABLE						SQL_COLUMN_UPDATABLE
382
#endif /* ODBCVER >= 0x0300 */
383
384
385
/* defines for diagnostics fields */
386
#if (ODBCVER >= 0x0300)
387
#define SQL_DIAG_CURSOR_ROW_COUNT			(-1249)
388
#define SQL_DIAG_ROW_NUMBER					(-1248)
389
#define SQL_DIAG_COLUMN_NUMBER				(-1247)
390
#endif /* ODBCVER >= 0x0300 */
391
392
/* SQL extended datatypes */
393
#define SQL_DATE                                9
394
#if (ODBCVER >= 0x0300)
395
#define SQL_INTERVAL							10
396
#endif  /* ODBCVER >= 0x0300 */
397
#define SQL_TIME                                10
398
#define SQL_TIMESTAMP                           11
399
#define SQL_LONGVARCHAR                         (-1)
400
#define SQL_BINARY                              (-2)
401
#define SQL_VARBINARY                           (-3)
402
#define SQL_LONGVARBINARY                       (-4)
403
#define SQL_BIGINT                              (-5)
404
#define SQL_TINYINT                             (-6)
405
#define SQL_BIT                                 (-7)
406
#if (ODBCVER >= 0x0350)
407
#define SQL_GUID				(-11)
408
#endif  /* ODBCVER >= 0x0350 */
409
410
#if (ODBCVER >= 0x0300)
411
/* interval code */
412
#define SQL_CODE_YEAR				1
413
#define SQL_CODE_MONTH				2
414
#define SQL_CODE_DAY				3
415
#define SQL_CODE_HOUR				4
416
#define SQL_CODE_MINUTE				5
417
#define SQL_CODE_SECOND				6
418
#define SQL_CODE_YEAR_TO_MONTH			7
419
#define SQL_CODE_DAY_TO_HOUR			8
420
#define SQL_CODE_DAY_TO_MINUTE			9
421
#define SQL_CODE_DAY_TO_SECOND			10
422
#define SQL_CODE_HOUR_TO_MINUTE			11
423
#define SQL_CODE_HOUR_TO_SECOND			12
424
#define SQL_CODE_MINUTE_TO_SECOND		13
425
426
#define SQL_INTERVAL_YEAR					(100 + SQL_CODE_YEAR)
427
#define SQL_INTERVAL_MONTH					(100 + SQL_CODE_MONTH)
428
#define SQL_INTERVAL_DAY					(100 + SQL_CODE_DAY)
429
#define SQL_INTERVAL_HOUR					(100 + SQL_CODE_HOUR)
430
#define SQL_INTERVAL_MINUTE					(100 + SQL_CODE_MINUTE)
431
#define SQL_INTERVAL_SECOND                	(100 + SQL_CODE_SECOND)
432
#define SQL_INTERVAL_YEAR_TO_MONTH			(100 + SQL_CODE_YEAR_TO_MONTH)
433
#define SQL_INTERVAL_DAY_TO_HOUR			(100 + SQL_CODE_DAY_TO_HOUR)
434
#define SQL_INTERVAL_DAY_TO_MINUTE			(100 + SQL_CODE_DAY_TO_MINUTE)
435
#define SQL_INTERVAL_DAY_TO_SECOND			(100 + SQL_CODE_DAY_TO_SECOND)
436
#define SQL_INTERVAL_HOUR_TO_MINUTE			(100 + SQL_CODE_HOUR_TO_MINUTE)
437
#define SQL_INTERVAL_HOUR_TO_SECOND			(100 + SQL_CODE_HOUR_TO_SECOND)
438
#define SQL_INTERVAL_MINUTE_TO_SECOND		(100 + SQL_CODE_MINUTE_TO_SECOND)
439
440
#else
441
#define SQL_INTERVAL_YEAR                       (-80)
442
#define SQL_INTERVAL_MONTH                      (-81)
443
#define SQL_INTERVAL_YEAR_TO_MONTH              (-82)
444
#define SQL_INTERVAL_DAY                        (-83)
445
#define SQL_INTERVAL_HOUR                       (-84)
446
#define SQL_INTERVAL_MINUTE                     (-85)
447
#define SQL_INTERVAL_SECOND                     (-86)
448
#define SQL_INTERVAL_DAY_TO_HOUR                (-87)
449
#define SQL_INTERVAL_DAY_TO_MINUTE              (-88)
450
#define SQL_INTERVAL_DAY_TO_SECOND              (-89)
451
#define SQL_INTERVAL_HOUR_TO_MINUTE             (-90)
452
#define SQL_INTERVAL_HOUR_TO_SECOND             (-91)
453
#define SQL_INTERVAL_MINUTE_TO_SECOND           (-92)
454
#endif  /* ODBCVER >= 0x0300 */
455
456
457
#if (ODBCVER <= 0x0300)
458
#define SQL_UNICODE                             (-95)
459
#define SQL_UNICODE_VARCHAR                     (-96)
460
#define SQL_UNICODE_LONGVARCHAR                 (-97)
461
#define SQL_UNICODE_CHAR                        SQL_UNICODE
462
#else
463
/* The previous definitions for SQL_UNICODE_ are historical and obsolete */
464
465
#define	SQL_UNICODE				SQL_WCHAR
466
467
#define	SQL_UNICODE_VARCHAR		SQL_WVARCHAR
468
#define SQL_UNICODE_LONGVARCHAR	SQL_WLONGVARCHAR
469
#define SQL_UNICODE_CHAR		SQL_WCHAR
470
#endif
471
472
#if (ODBCVER < 0x0300)
473
#define SQL_TYPE_DRIVER_START                   SQL_INTERVAL_YEAR
474
#define SQL_TYPE_DRIVER_END                     SQL_UNICODE_LONGVARCHAR
475
#endif  /* ODBCVER < 0x0300 */
476
477
/* C datatype to SQL datatype mapping      SQL types
478
                                           ------------------- */
479
#define SQL_C_CHAR    SQL_CHAR             /* CHAR, VARCHAR, DECIMAL, NUMERIC */
480
#define SQL_C_LONG    SQL_INTEGER          /* INTEGER                      */
481
#define SQL_C_SHORT   SQL_SMALLINT         /* SMALLINT                     */
482
#define SQL_C_FLOAT   SQL_REAL             /* REAL                         */
483
#define SQL_C_DOUBLE  SQL_DOUBLE           /* FLOAT, DOUBLE                */
484
#if (ODBCVER >= 0x0300)
485
#define	SQL_C_NUMERIC		SQL_NUMERIC
486
#endif  /* ODBCVER >= 0x0300 */
487
#define SQL_C_DEFAULT 99
488
489
#define SQL_SIGNED_OFFSET       (-20)
490
#define SQL_UNSIGNED_OFFSET     (-22)
491
492
/* C datatype to SQL datatype mapping */
493
#define SQL_C_DATE       SQL_DATE
494
#define SQL_C_TIME       SQL_TIME
495
#define SQL_C_TIMESTAMP  SQL_TIMESTAMP
496
#if (ODBCVER >= 0x0300)
497
#define SQL_C_TYPE_DATE					SQL_TYPE_DATE
498
#define SQL_C_TYPE_TIME					SQL_TYPE_TIME
499
#define SQL_C_TYPE_TIMESTAMP			SQL_TYPE_TIMESTAMP
500
#define SQL_C_INTERVAL_YEAR				SQL_INTERVAL_YEAR
501
#define SQL_C_INTERVAL_MONTH			SQL_INTERVAL_MONTH
502
#define SQL_C_INTERVAL_DAY				SQL_INTERVAL_DAY
503
#define SQL_C_INTERVAL_HOUR				SQL_INTERVAL_HOUR
504
#define SQL_C_INTERVAL_MINUTE			SQL_INTERVAL_MINUTE
505
#define SQL_C_INTERVAL_SECOND			SQL_INTERVAL_SECOND
506
#define SQL_C_INTERVAL_YEAR_TO_MONTH	SQL_INTERVAL_YEAR_TO_MONTH
507
#define SQL_C_INTERVAL_DAY_TO_HOUR		SQL_INTERVAL_DAY_TO_HOUR
508
#define SQL_C_INTERVAL_DAY_TO_MINUTE	SQL_INTERVAL_DAY_TO_MINUTE
509
#define SQL_C_INTERVAL_DAY_TO_SECOND	SQL_INTERVAL_DAY_TO_SECOND
510
#define SQL_C_INTERVAL_HOUR_TO_MINUTE	SQL_INTERVAL_HOUR_TO_MINUTE
511
#define SQL_C_INTERVAL_HOUR_TO_SECOND	SQL_INTERVAL_HOUR_TO_SECOND
512
#define SQL_C_INTERVAL_MINUTE_TO_SECOND	SQL_INTERVAL_MINUTE_TO_SECOND
513
#endif  /* ODBCVER >= 0x0300 */
514
#define SQL_C_BINARY     SQL_BINARY
515
#define SQL_C_BIT        SQL_BIT
516
#if (ODBCVER >= 0x0300)
517
#define SQL_C_SBIGINT	(SQL_BIGINT+SQL_SIGNED_OFFSET)	   /* SIGNED BIGINT */
518
#define SQL_C_UBIGINT	(SQL_BIGINT+SQL_UNSIGNED_OFFSET)   /* UNSIGNED BIGINT */
519
#endif  /* ODBCVER >= 0x0300 */
520
#define SQL_C_TINYINT    SQL_TINYINT
521
#define SQL_C_SLONG      (SQL_C_LONG+SQL_SIGNED_OFFSET)    /* SIGNED INTEGER  */
522
#define SQL_C_SSHORT     (SQL_C_SHORT+SQL_SIGNED_OFFSET)   /* SIGNED SMALLINT */
523
#define SQL_C_STINYINT   (SQL_TINYINT+SQL_SIGNED_OFFSET)   /* SIGNED TINYINT  */
524
#define SQL_C_ULONG      (SQL_C_LONG+SQL_UNSIGNED_OFFSET)  /* UNSIGNED INTEGER*/
525
#define SQL_C_USHORT     (SQL_C_SHORT+SQL_UNSIGNED_OFFSET) /* UNSIGNED SMALLINT*/
526
#define SQL_C_UTINYINT   (SQL_TINYINT+SQL_UNSIGNED_OFFSET) /* UNSIGNED TINYINT*/
527
528
#ifdef _WIN64
529
#define SQL_C_BOOKMARK   SQL_C_UBIGINT                     /* BOOKMARK        */
530
#else
531
#define SQL_C_BOOKMARK   SQL_C_ULONG                       /* BOOKMARK        */
532
#endif
533
534
#if (ODBCVER >= 0x0350)
535
#define SQL_C_GUID	SQL_GUID
536
#endif  /* ODBCVER >= 0x0350 */
537
538
#define SQL_TYPE_NULL                   0
539
#if (ODBCVER < 0x0300)
540
#define SQL_TYPE_MIN                    SQL_BIT
541
#define SQL_TYPE_MAX                    SQL_VARCHAR
542
#endif
543
544
#if (ODBCVER >= 0x0300)
545
#define SQL_C_VARBOOKMARK		SQL_C_BINARY
546
#endif  /* ODBCVER >= 0x0300 */
547
548
/* define for SQL_DIAG_ROW_NUMBER and SQL_DIAG_COLUMN_NUMBER */
549
#if (ODBCVER >= 0x0300)
550
#define SQL_NO_ROW_NUMBER						(-1)
551
#define SQL_NO_COLUMN_NUMBER					(-1)
552
#define SQL_ROW_NUMBER_UNKNOWN					(-2)
553
#define SQL_COLUMN_NUMBER_UNKNOWN				(-2)
554
#endif
555
556
/* SQLBindParameter extensions */
557
#define SQL_DEFAULT_PARAM            (-5)
558
#define SQL_IGNORE                   (-6)
559
#if (ODBCVER >= 0x0300)
560
#define SQL_COLUMN_IGNORE			SQL_IGNORE
561
#endif  /* ODBCVER >= 0x0300 */
562
#define SQL_LEN_DATA_AT_EXEC_OFFSET  (-100)
563
#define SQL_LEN_DATA_AT_EXEC(length) (-(length)+SQL_LEN_DATA_AT_EXEC_OFFSET)
564
565
/* binary length for driver specific attributes */
566
#define SQL_LEN_BINARY_ATTR_OFFSET	 (-100)
567
#define SQL_LEN_BINARY_ATTR(length)	 (-(length)+SQL_LEN_BINARY_ATTR_OFFSET)
568
569
/* Defines used by Driver Manager when mapping SQLSetParam to SQLBindParameter
570
*/
571
#define SQL_PARAM_TYPE_DEFAULT           SQL_PARAM_INPUT_OUTPUT
572
#define SQL_SETPARAM_VALUE_MAX           (-1L)
573
574
/* SQLColAttributes defines */
575
#define SQL_COLUMN_COUNT                0
576
#define SQL_COLUMN_NAME                 1
577
#define SQL_COLUMN_TYPE                 2
578
#define SQL_COLUMN_LENGTH               3
579
#define SQL_COLUMN_PRECISION            4
580
#define SQL_COLUMN_SCALE                5
581
#define SQL_COLUMN_DISPLAY_SIZE         6
582
#define SQL_COLUMN_NULLABLE             7
583
#define SQL_COLUMN_UNSIGNED             8
584
#define SQL_COLUMN_MONEY                9
585
#define SQL_COLUMN_UPDATABLE            10
586
#define SQL_COLUMN_AUTO_INCREMENT       11
587
#define SQL_COLUMN_CASE_SENSITIVE       12
588
#define SQL_COLUMN_SEARCHABLE           13
589
#define SQL_COLUMN_TYPE_NAME            14
590
#define SQL_COLUMN_TABLE_NAME           15
591
#define SQL_COLUMN_OWNER_NAME           16
592
#define SQL_COLUMN_QUALIFIER_NAME       17
593
#define SQL_COLUMN_LABEL                18
594
#define SQL_COLATT_OPT_MAX              SQL_COLUMN_LABEL
595
#if (ODBCVER < 0x0300)
596
#define SQL_COLUMN_DRIVER_START         1000
597
#endif  /* ODBCVER < 0x0300 */
598
599
#define SQL_COLATT_OPT_MIN              SQL_COLUMN_COUNT
600
601
/* SQLColAttributes subdefines for SQL_COLUMN_UPDATABLE */
602
#define SQL_ATTR_READONLY               0
603
#define SQL_ATTR_WRITE                  1
604
#define SQL_ATTR_READWRITE_UNKNOWN      2
605
606
/* SQLColAttributes subdefines for SQL_COLUMN_SEARCHABLE */
607
/* These are also used by SQLGetInfo                     */
608
#define SQL_UNSEARCHABLE                0
609
#define SQL_LIKE_ONLY                   1
610
#define SQL_ALL_EXCEPT_LIKE             2
611
#define SQL_SEARCHABLE                  3
612
#define SQL_PRED_SEARCHABLE				SQL_SEARCHABLE
613
614
615
/* Special return values for SQLGetData */
616
#define SQL_NO_TOTAL                    (-4)
617
618
/********************************************/
619
/* SQLGetFunctions: additional values for   */
620
/* fFunction to represent functions that    */
621
/* are not in the X/Open spec.				*/
622
/********************************************/
623
624
#if (ODBCVER >= 0x0300)
625
#define SQL_API_SQLALLOCHANDLESTD	73
626
#define SQL_API_SQLBULKOPERATIONS	24
627
#endif /* ODBCVER >= 0x0300 */
628
#define SQL_API_SQLBINDPARAMETER    72
629
#define SQL_API_SQLBROWSECONNECT    55
630
#define SQL_API_SQLCOLATTRIBUTES    6
631
#define SQL_API_SQLCOLUMNPRIVILEGES 56
632
#define SQL_API_SQLDESCRIBEPARAM    58
633
#define	SQL_API_SQLDRIVERCONNECT	41
634
#define SQL_API_SQLDRIVERS          71
635
#define SQL_API_SQLEXTENDEDFETCH    59
636
#define SQL_API_SQLFOREIGNKEYS      60
637
#define SQL_API_SQLMORERESULTS      61
638
#define SQL_API_SQLNATIVESQL        62
639
#define SQL_API_SQLNUMPARAMS        63
640
#define SQL_API_SQLPARAMOPTIONS     64
641
#define SQL_API_SQLPRIMARYKEYS      65
642
#define SQL_API_SQLPROCEDURECOLUMNS 66
643
#define SQL_API_SQLPROCEDURES       67
644
#define SQL_API_SQLSETPOS           68
645
#define SQL_API_SQLSETSCROLLOPTIONS 69
646
#define SQL_API_SQLTABLEPRIVILEGES  70
647
648
/*-------------------------------------------*/
649
/* SQL_EXT_API_LAST is not useful with ODBC  */
650
/* version 3.0 because some of the values    */
651
/* from X/Open are in the 10000 range.       */
652
/*-------------------------------------------*/
653
654
#if (ODBCVER < 0x0300)
655
#define SQL_EXT_API_LAST            SQL_API_SQLBINDPARAMETER
656
#define SQL_NUM_FUNCTIONS           23
657
#define SQL_EXT_API_START           40
658
#define SQL_NUM_EXTENSIONS (SQL_EXT_API_LAST-SQL_EXT_API_START+1)
659
#endif
660
661
/*--------------------------------------------*/
662
/* SQL_API_ALL_FUNCTIONS returns an array     */
663
/* of 'booleans' representing whether a       */
664
/* function is implemented by the driver.     */
665
/*                                            */
666
/* CAUTION: Only functions defined in ODBC    */
667
/* version 2.0 and earlier are returned, the  */
668
/* new high-range function numbers defined by */
669
/* X/Open break this scheme.   See the new    */
670
/* method -- SQL_API_ODBC3_ALL_FUNCTIONS      */
671
/*--------------------------------------------*/
672
673
#define SQL_API_ALL_FUNCTIONS       0		/* See CAUTION above */
674
675
/*----------------------------------------------*/
676
/* 2.X drivers export a dummy function with  	*/
677
/* ordinal number SQL_API_LOADBYORDINAL to speed*/
678
/* loading under the windows operating system.  */
679
/* 						*/
680
/* CAUTION: Loading by ordinal is not supported */
681
/* for 3.0 and above drivers.			*/
682
/*----------------------------------------------*/
683
684
#define SQL_API_LOADBYORDINAL       199		/* See CAUTION above */
685
686
/*----------------------------------------------*/
687
/* SQL_API_ODBC3_ALL_FUNCTIONS                  */
688
/* This returns a bitmap, which allows us to    */
689
/* handle the higher-valued function numbers.   */
690
/* Use  SQL_FUNC_EXISTS(bitmap,function_number) */
691
/* to determine if the function exists.         */
692
/*----------------------------------------------*/
693
694
695
#if (ODBCVER >= 0x0300)
696
#define SQL_API_ODBC3_ALL_FUNCTIONS	999
697
#define	SQL_API_ODBC3_ALL_FUNCTIONS_SIZE	250		/* array of 250 words */
698
699
#define SQL_FUNC_EXISTS(pfExists, uwAPI) \
700
				((*(((UWORD*) (pfExists)) + ((uwAPI) >> 4)) \
701
					& (1 << ((uwAPI) & 0x000F)) \
702
 				 ) ? SQL_TRUE : SQL_FALSE \
703
				)
704
#endif  /* ODBCVER >= 0x0300 */
705
706
707
/************************************************/
708
/* Extended definitions for SQLGetInfo			*/
709
/************************************************/
710
711
/*---------------------------------*/
712
/* Values in ODBC 2.0 that are not */
713
/* in the X/Open spec              */
714
/*---------------------------------*/
715
716
#define SQL_INFO_FIRST                       0
717
#define SQL_ACTIVE_CONNECTIONS               0	/* MAX_DRIVER_CONNECTIONS */
718
#define SQL_ACTIVE_STATEMENTS                1	/* MAX_CONCURRENT_ACTIVITIES */
719
#define SQL_DRIVER_HDBC                      3
720
#define SQL_DRIVER_HENV                      4
721
#define SQL_DRIVER_HSTMT                     5
722
#define SQL_DRIVER_NAME                      6
723
#define SQL_DRIVER_VER                       7
724
#define SQL_ODBC_API_CONFORMANCE             9
725
#define SQL_ODBC_VER                        10
726
#define SQL_ROW_UPDATES                     11
727
#define SQL_ODBC_SAG_CLI_CONFORMANCE        12
728
#define SQL_ODBC_SQL_CONFORMANCE            15
729
#define SQL_PROCEDURES                      21
730
#define SQL_CONCAT_NULL_BEHAVIOR            22
731
#define SQL_CURSOR_ROLLBACK_BEHAVIOR        24
732
#define SQL_EXPRESSIONS_IN_ORDERBY          27
733
#define SQL_MAX_OWNER_NAME_LEN              32	/* MAX_SCHEMA_NAME_LEN */
734
#define SQL_MAX_PROCEDURE_NAME_LEN          33
735
#define SQL_MAX_QUALIFIER_NAME_LEN          34	/* MAX_CATALOG_NAME_LEN */
736
#define SQL_MULT_RESULT_SETS                36
737
#define SQL_MULTIPLE_ACTIVE_TXN             37
738
#define SQL_OUTER_JOINS                     38
739
#define SQL_OWNER_TERM                      39
740
#define SQL_PROCEDURE_TERM                  40
741
#define SQL_QUALIFIER_NAME_SEPARATOR        41
742
#define SQL_QUALIFIER_TERM                  42
743
#define SQL_SCROLL_OPTIONS                  44
744
#define SQL_TABLE_TERM                      45
745
#define SQL_CONVERT_FUNCTIONS               48
746
#define SQL_NUMERIC_FUNCTIONS               49
747
#define SQL_STRING_FUNCTIONS                50
748
#define SQL_SYSTEM_FUNCTIONS                51
749
#define SQL_TIMEDATE_FUNCTIONS              52
750
#define SQL_CONVERT_BIGINT                  53
751
#define SQL_CONVERT_BINARY                  54
752
#define SQL_CONVERT_BIT                     55
753
#define SQL_CONVERT_CHAR                    56
754
#define SQL_CONVERT_DATE                    57
755
#define SQL_CONVERT_DECIMAL                 58
756
#define SQL_CONVERT_DOUBLE                  59
757
#define SQL_CONVERT_FLOAT                   60
758
#define SQL_CONVERT_INTEGER                 61
759
#define SQL_CONVERT_LONGVARCHAR             62
760
#define SQL_CONVERT_NUMERIC                 63
761
#define SQL_CONVERT_REAL                    64
762
#define SQL_CONVERT_SMALLINT                65
763
#define SQL_CONVERT_TIME                    66
764
#define SQL_CONVERT_TIMESTAMP               67
765
#define SQL_CONVERT_TINYINT                 68
766
#define SQL_CONVERT_VARBINARY               69
767
#define SQL_CONVERT_VARCHAR                 70
768
#define SQL_CONVERT_LONGVARBINARY           71
769
#define SQL_ODBC_SQL_OPT_IEF                73		/* SQL_INTEGRITY */
770
#define SQL_CORRELATION_NAME                74
771
#define SQL_NON_NULLABLE_COLUMNS            75
772
#define SQL_DRIVER_HLIB                     76
773
#define SQL_DRIVER_ODBC_VER                 77
774
#define SQL_LOCK_TYPES                      78
775
#define SQL_POS_OPERATIONS                  79
776
#define SQL_POSITIONED_STATEMENTS           80
777
#define SQL_BOOKMARK_PERSISTENCE            82
778
#define SQL_STATIC_SENSITIVITY              83
779
#define SQL_FILE_USAGE                      84
780
#define SQL_COLUMN_ALIAS                    87
781
#define SQL_GROUP_BY                        88
782
#define SQL_KEYWORDS                        89
783
#define SQL_OWNER_USAGE                     91
784
#define SQL_QUALIFIER_USAGE                 92
785
#define SQL_QUOTED_IDENTIFIER_CASE          93
786
#define SQL_SUBQUERIES                      95
787
#define SQL_UNION                           96
788
#define SQL_MAX_ROW_SIZE_INCLUDES_LONG      103
789
#define SQL_MAX_CHAR_LITERAL_LEN            108
790
#define SQL_TIMEDATE_ADD_INTERVALS          109
791
#define SQL_TIMEDATE_DIFF_INTERVALS         110
792
#define SQL_NEED_LONG_DATA_LEN              111
793
#define SQL_MAX_BINARY_LITERAL_LEN          112
794
#define SQL_LIKE_ESCAPE_CLAUSE              113
795
#define SQL_QUALIFIER_LOCATION              114
796
797
#if (ODBCVER >= 0x0201 && ODBCVER < 0x0300)
798
#define SQL_OJ_CAPABILITIES         65003  /* Temp value until ODBC 3.0 */
799
#endif  /* ODBCVER >= 0x0201 && ODBCVER < 0x0300 */
800
801
/*----------------------------------------------*/
802
/* SQL_INFO_LAST and SQL_INFO_DRIVER_START are  */
803
/* not useful anymore, because  X/Open has      */
804
/* values in the 10000 range.   You  			*/
805
/* must contact X/Open directly to get a range	*/
806
/* of numbers for driver-specific values.	    */
807
/*----------------------------------------------*/
808
809
#if (ODBCVER < 0x0300)
810
#define SQL_INFO_LAST						SQL_QUALIFIER_LOCATION
811
#define SQL_INFO_DRIVER_START				1000
812
#endif /* ODBCVER < 0x0300 */
813
814
/*-----------------------------------------------*/
815
/* ODBC 3.0 SQLGetInfo values that are not part  */
816
/* of the X/Open standard at this time.   X/Open */
817
/* standard values are in sql.h.				 */
818
/*-----------------------------------------------*/
819
820
#if (ODBCVER >= 0x0300)
821
#define SQL_ACTIVE_ENVIRONMENTS					116
822
#define	SQL_ALTER_DOMAIN						117
823
824
#define	SQL_SQL_CONFORMANCE						118
825
#define SQL_DATETIME_LITERALS					119
826
827
#define	SQL_ASYNC_MODE							10021	/* new X/Open spec */
828
#define SQL_BATCH_ROW_COUNT						120
829
#define SQL_BATCH_SUPPORT						121
830
#define SQL_CATALOG_LOCATION					SQL_QUALIFIER_LOCATION
831
#define SQL_CATALOG_NAME_SEPARATOR				SQL_QUALIFIER_NAME_SEPARATOR
832
#define SQL_CATALOG_TERM						SQL_QUALIFIER_TERM
833
#define SQL_CATALOG_USAGE						SQL_QUALIFIER_USAGE
834
#define	SQL_CONVERT_WCHAR						122
835
#define SQL_CONVERT_INTERVAL_DAY_TIME			123
836
#define SQL_CONVERT_INTERVAL_YEAR_MONTH			124
837
#define	SQL_CONVERT_WLONGVARCHAR				125
838
#define	SQL_CONVERT_WVARCHAR					126
839
#define	SQL_CREATE_ASSERTION					127
840
#define	SQL_CREATE_CHARACTER_SET				128
841
#define	SQL_CREATE_COLLATION					129
842
#define	SQL_CREATE_DOMAIN						130
843
#define	SQL_CREATE_SCHEMA						131
844
#define	SQL_CREATE_TABLE						132
845
#define	SQL_CREATE_TRANSLATION					133
846
#define	SQL_CREATE_VIEW							134
847
#define SQL_DRIVER_HDESC						135
848
#define	SQL_DROP_ASSERTION						136
849
#define	SQL_DROP_CHARACTER_SET					137
850
#define	SQL_DROP_COLLATION						138
851
#define	SQL_DROP_DOMAIN							139
852
#define	SQL_DROP_SCHEMA							140
853
#define	SQL_DROP_TABLE							141
854
#define	SQL_DROP_TRANSLATION					142
855
#define	SQL_DROP_VIEW							143
856
#define SQL_DYNAMIC_CURSOR_ATTRIBUTES1			144
857
#define SQL_DYNAMIC_CURSOR_ATTRIBUTES2			145
858
#define SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1		146
859
#define SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2		147
860
#define SQL_INDEX_KEYWORDS						148
861
#define SQL_INFO_SCHEMA_VIEWS					149
862
#define SQL_KEYSET_CURSOR_ATTRIBUTES1			150
863
#define SQL_KEYSET_CURSOR_ATTRIBUTES2			151
864
#define	SQL_MAX_ASYNC_CONCURRENT_STATEMENTS		10022	/* new X/Open spec */
865
#define SQL_ODBC_INTERFACE_CONFORMANCE			152
866
#define SQL_PARAM_ARRAY_ROW_COUNTS     			153
867
#define SQL_PARAM_ARRAY_SELECTS     			154
868
#define SQL_SCHEMA_TERM							SQL_OWNER_TERM
869
#define SQL_SCHEMA_USAGE						SQL_OWNER_USAGE
870
#define SQL_SQL92_DATETIME_FUNCTIONS			155
871
#define SQL_SQL92_FOREIGN_KEY_DELETE_RULE		156
872
#define SQL_SQL92_FOREIGN_KEY_UPDATE_RULE		157
873
#define SQL_SQL92_GRANT							158
874
#define SQL_SQL92_NUMERIC_VALUE_FUNCTIONS		159
875
#define SQL_SQL92_PREDICATES					160
876
#define SQL_SQL92_RELATIONAL_JOIN_OPERATORS		161
877
#define SQL_SQL92_REVOKE						162
878
#define SQL_SQL92_ROW_VALUE_CONSTRUCTOR			163
879
#define SQL_SQL92_STRING_FUNCTIONS				164
880
#define SQL_SQL92_VALUE_EXPRESSIONS				165
881
#define SQL_STANDARD_CLI_CONFORMANCE			166
882
#define SQL_STATIC_CURSOR_ATTRIBUTES1			167
883
#define SQL_STATIC_CURSOR_ATTRIBUTES2			168
884
885
#define SQL_AGGREGATE_FUNCTIONS					169
886
#define SQL_DDL_INDEX							170
887
#define SQL_DM_VER								171
888
#define SQL_INSERT_STATEMENT					172
889
#define	SQL_CONVERT_GUID						173
890
#define SQL_UNION_STATEMENT						SQL_UNION
891
#endif  /* ODBCVER >= 0x0300 */
892
893
#define	SQL_DTC_TRANSITION_COST					1750
894
895
/* SQL_ALTER_TABLE bitmasks */
896
#if (ODBCVER >= 0x0300)
897
/* the following 5 bitmasks are defined in sql.h
898
*#define SQL_AT_ADD_COLUMN                   	0x00000001L
899
*#define SQL_AT_DROP_COLUMN                  	0x00000002L
900
*#define SQL_AT_ADD_CONSTRAINT               	0x00000008L
901
*/
902
#define	SQL_AT_ADD_COLUMN_SINGLE				0x00000020L
903
#define	SQL_AT_ADD_COLUMN_DEFAULT				0x00000040L
904
#define	SQL_AT_ADD_COLUMN_COLLATION				0x00000080L
905
#define	SQL_AT_SET_COLUMN_DEFAULT				0x00000100L
906
#define	SQL_AT_DROP_COLUMN_DEFAULT				0x00000200L
907
#define	SQL_AT_DROP_COLUMN_CASCADE				0x00000400L
908
#define	SQL_AT_DROP_COLUMN_RESTRICT				0x00000800L
909
#define SQL_AT_ADD_TABLE_CONSTRAINT				0x00001000L
910
#define SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE	0x00002000L
911
#define SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT	0x00004000L
912
#define SQL_AT_CONSTRAINT_NAME_DEFINITION		0x00008000L
913
#define SQL_AT_CONSTRAINT_INITIALLY_DEFERRED	0x00010000L
914
#define SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE	0x00020000L
915
#define SQL_AT_CONSTRAINT_DEFERRABLE			0x00040000L
916
#define SQL_AT_CONSTRAINT_NON_DEFERRABLE		0x00080000L
917
#endif	/* ODBCVER >= 0x0300 */
918
919
/* SQL_CONVERT_*  return value bitmasks */
920
921
#define SQL_CVT_CHAR                        0x00000001L
922
#define SQL_CVT_NUMERIC                     0x00000002L
923
#define SQL_CVT_DECIMAL                     0x00000004L
924
#define SQL_CVT_INTEGER                     0x00000008L
925
#define SQL_CVT_SMALLINT                    0x00000010L
926
#define SQL_CVT_FLOAT                       0x00000020L
927
#define SQL_CVT_REAL                        0x00000040L
928
#define SQL_CVT_DOUBLE                      0x00000080L
929
#define SQL_CVT_VARCHAR                     0x00000100L
930
#define SQL_CVT_LONGVARCHAR                 0x00000200L
931
#define SQL_CVT_BINARY                      0x00000400L
932
#define SQL_CVT_VARBINARY                   0x00000800L
933
#define SQL_CVT_BIT                         0x00001000L
934
#define SQL_CVT_TINYINT                     0x00002000L
935
#define SQL_CVT_BIGINT                      0x00004000L
936
#define SQL_CVT_DATE                        0x00008000L
937
#define SQL_CVT_TIME                        0x00010000L
938
#define SQL_CVT_TIMESTAMP                   0x00020000L
939
#define SQL_CVT_LONGVARBINARY               0x00040000L
940
#if (ODBCVER >= 0x0300)
941
#define SQL_CVT_INTERVAL_YEAR_MONTH	    	0x00080000L
942
#define SQL_CVT_INTERVAL_DAY_TIME	    	0x00100000L
943
#define	SQL_CVT_WCHAR						0x00200000L
944
#define	SQL_CVT_WLONGVARCHAR				0x00400000L
945
#define	SQL_CVT_WVARCHAR					0x00800000L
946
#define SQL_CVT_GUID						0x01000000L
947
948
#endif  /* ODBCVER >= 0x0300 */
949
950
951
/* SQL_CONVERT_FUNCTIONS functions */
952
#define SQL_FN_CVT_CONVERT                  0x00000001L
953
#if (ODBCVER >= 0x0300)
954
#define SQL_FN_CVT_CAST						0x00000002L
955
#endif  /* ODBCVER >= 0x0300 */
956
957
958
/* SQL_STRING_FUNCTIONS functions */
959
960
#define SQL_FN_STR_CONCAT                   0x00000001L
961
#define SQL_FN_STR_INSERT                   0x00000002L
962
#define SQL_FN_STR_LEFT                     0x00000004L
963
#define SQL_FN_STR_LTRIM                    0x00000008L
964
#define SQL_FN_STR_LENGTH                   0x00000010L
965
#define SQL_FN_STR_LOCATE                   0x00000020L
966
#define SQL_FN_STR_LCASE                    0x00000040L
967
#define SQL_FN_STR_REPEAT                   0x00000080L
968
#define SQL_FN_STR_REPLACE                  0x00000100L
969
#define SQL_FN_STR_RIGHT                    0x00000200L
970
#define SQL_FN_STR_RTRIM                    0x00000400L
971
#define SQL_FN_STR_SUBSTRING                0x00000800L
972
#define SQL_FN_STR_UCASE                    0x00001000L
973
#define SQL_FN_STR_ASCII                    0x00002000L
974
#define SQL_FN_STR_CHAR                     0x00004000L
975
#define SQL_FN_STR_DIFFERENCE               0x00008000L
976
#define SQL_FN_STR_LOCATE_2                 0x00010000L
977
#define SQL_FN_STR_SOUNDEX                  0x00020000L
978
#define SQL_FN_STR_SPACE                    0x00040000L
979
#if (ODBCVER >= 0x0300)
980
#define SQL_FN_STR_BIT_LENGTH				0x00080000L
981
#define SQL_FN_STR_CHAR_LENGTH				0x00100000L
982
#define SQL_FN_STR_CHARACTER_LENGTH			0x00200000L
983
#define SQL_FN_STR_OCTET_LENGTH				0x00400000L
984
#define SQL_FN_STR_POSITION					0x00800000L
985
#endif  /* ODBCVER >= 0x0300 */
986
987
/* SQL_SQL92_STRING_FUNCTIONS */
988
#if (ODBCVER >= 0x0300)
989
#define SQL_SSF_CONVERT						0x00000001L
990
#define SQL_SSF_LOWER						0x00000002L
991
#define SQL_SSF_UPPER						0x00000004L
992
#define SQL_SSF_SUBSTRING					0x00000008L
993
#define SQL_SSF_TRANSLATE					0x00000010L
994
#define SQL_SSF_TRIM_BOTH					0x00000020L
995
#define SQL_SSF_TRIM_LEADING				0x00000040L
996
#define SQL_SSF_TRIM_TRAILING				0x00000080L
997
#endif /* ODBCVER >= 0x0300 */
998
999
/* SQL_NUMERIC_FUNCTIONS functions */
1000
1001
#define SQL_FN_NUM_ABS                      0x00000001L
1002
#define SQL_FN_NUM_ACOS                     0x00000002L
1003
#define SQL_FN_NUM_ASIN                     0x00000004L
1004
#define SQL_FN_NUM_ATAN                     0x00000008L
1005
#define SQL_FN_NUM_ATAN2                    0x00000010L
1006
#define SQL_FN_NUM_CEILING                  0x00000020L
1007
#define SQL_FN_NUM_COS                      0x00000040L
1008
#define SQL_FN_NUM_COT                      0x00000080L
1009
#define SQL_FN_NUM_EXP                      0x00000100L
1010
#define SQL_FN_NUM_FLOOR                    0x00000200L
1011
#define SQL_FN_NUM_LOG                      0x00000400L
1012
#define SQL_FN_NUM_MOD                      0x00000800L
1013
#define SQL_FN_NUM_SIGN                     0x00001000L
1014
#define SQL_FN_NUM_SIN                      0x00002000L
1015
#define SQL_FN_NUM_SQRT                     0x00004000L
1016
#define SQL_FN_NUM_TAN                      0x00008000L
1017
#define SQL_FN_NUM_PI                       0x00010000L
1018
#define SQL_FN_NUM_RAND                     0x00020000L
1019
#define SQL_FN_NUM_DEGREES                  0x00040000L
1020
#define SQL_FN_NUM_LOG10                    0x00080000L
1021
#define SQL_FN_NUM_POWER                    0x00100000L
1022
#define SQL_FN_NUM_RADIANS                  0x00200000L
1023
#define SQL_FN_NUM_ROUND                    0x00400000L
1024
#define SQL_FN_NUM_TRUNCATE                 0x00800000L
1025
1026
/* SQL_SQL92_NUMERIC_VALUE_FUNCTIONS */
1027
#if (ODBCVER >= 0x0300)
1028
#define SQL_SNVF_BIT_LENGTH					0x00000001L
1029
#define SQL_SNVF_CHAR_LENGTH				0x00000002L
1030
#define SQL_SNVF_CHARACTER_LENGTH			0x00000004L
1031
#define SQL_SNVF_EXTRACT					0x00000008L
1032
#define SQL_SNVF_OCTET_LENGTH				0x00000010L
1033
#define SQL_SNVF_POSITION					0x00000020L
1034
#endif  /* ODBCVER >= 0x0300 */
1035
1036
/* SQL_TIMEDATE_FUNCTIONS functions */
1037
1038
#define SQL_FN_TD_NOW                       0x00000001L
1039
#define SQL_FN_TD_CURDATE                   0x00000002L
1040
#define SQL_FN_TD_DAYOFMONTH                0x00000004L
1041
#define SQL_FN_TD_DAYOFWEEK                 0x00000008L
1042
#define SQL_FN_TD_DAYOFYEAR                 0x00000010L
1043
#define SQL_FN_TD_MONTH                     0x00000020L
1044
#define SQL_FN_TD_QUARTER                   0x00000040L
1045
#define SQL_FN_TD_WEEK                      0x00000080L
1046
#define SQL_FN_TD_YEAR                      0x00000100L
1047
#define SQL_FN_TD_CURTIME                   0x00000200L
1048
#define SQL_FN_TD_HOUR                      0x00000400L
1049
#define SQL_FN_TD_MINUTE                    0x00000800L
1050
#define SQL_FN_TD_SECOND                    0x00001000L
1051
#define SQL_FN_TD_TIMESTAMPADD              0x00002000L
1052
#define SQL_FN_TD_TIMESTAMPDIFF             0x00004000L
1053
#define SQL_FN_TD_DAYNAME                   0x00008000L
1054
#define SQL_FN_TD_MONTHNAME                 0x00010000L
1055
#if (ODBCVER >= 0x0300)
1056
#define SQL_FN_TD_CURRENT_DATE				0x00020000L
1057
#define SQL_FN_TD_CURRENT_TIME				0x00040000L
1058
#define SQL_FN_TD_CURRENT_TIMESTAMP			0x00080000L
1059
#define SQL_FN_TD_EXTRACT					0x00100000L
1060
#endif  /* ODBCVER >= 0x0300 */
1061
1062
/* SQL_SQL92_DATETIME_FUNCTIONS */
1063
#if (ODBCVER >= 0x0300)
1064
#define SQL_SDF_CURRENT_DATE				0x00000001L
1065
#define SQL_SDF_CURRENT_TIME				0x00000002L
1066
#define SQL_SDF_CURRENT_TIMESTAMP			0x00000004L
1067
#endif /* ODBCVER >= 0x0300 */
1068
1069
/* SQL_SYSTEM_FUNCTIONS functions */
1070
1071
#define SQL_FN_SYS_USERNAME                 0x00000001L
1072
#define SQL_FN_SYS_DBNAME                   0x00000002L
1073
#define SQL_FN_SYS_IFNULL                   0x00000004L
1074
1075
/* SQL_TIMEDATE_ADD_INTERVALS and SQL_TIMEDATE_DIFF_INTERVALS functions */
1076
1077
#define SQL_FN_TSI_FRAC_SECOND              0x00000001L
1078
#define SQL_FN_TSI_SECOND                   0x00000002L
1079
#define SQL_FN_TSI_MINUTE                   0x00000004L
1080
#define SQL_FN_TSI_HOUR                     0x00000008L
1081
#define SQL_FN_TSI_DAY                      0x00000010L
1082
#define SQL_FN_TSI_WEEK                     0x00000020L
1083
#define SQL_FN_TSI_MONTH                    0x00000040L
1084
#define SQL_FN_TSI_QUARTER                  0x00000080L
1085
#define SQL_FN_TSI_YEAR                     0x00000100L
1086
1087
/* bitmasks for SQL_DYNAMIC_CURSOR_ATTRIBUTES1,
1088
 * SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1,
1089
 * SQL_KEYSET_CURSOR_ATTRIBUTES1, and SQL_STATIC_CURSOR_ATTRIBUTES1
1090
 */
1091
#if (ODBCVER >= 0x0300)
1092
/* supported SQLFetchScroll FetchOrientation's */
1093
#define SQL_CA1_NEXT						0x00000001L
1094
#define SQL_CA1_ABSOLUTE					0x00000002L
1095
#define SQL_CA1_RELATIVE					0x00000004L
1096
#define SQL_CA1_BOOKMARK					0x00000008L
1097
1098
/* supported SQLSetPos LockType's */
1099
#define SQL_CA1_LOCK_NO_CHANGE				0x00000040L
1100
#define SQL_CA1_LOCK_EXCLUSIVE				0x00000080L
1101
#define SQL_CA1_LOCK_UNLOCK					0x00000100L
1102
1103
/* supported SQLSetPos Operations */
1104
#define SQL_CA1_POS_POSITION				0x00000200L
1105
#define SQL_CA1_POS_UPDATE					0x00000400L
1106
#define SQL_CA1_POS_DELETE					0x00000800L
1107
#define SQL_CA1_POS_REFRESH					0x00001000L
1108
1109
/* positioned updates and deletes */
1110
#define SQL_CA1_POSITIONED_UPDATE			0x00002000L
1111
#define SQL_CA1_POSITIONED_DELETE			0x00004000L
1112
#define SQL_CA1_SELECT_FOR_UPDATE			0x00008000L
1113
1114
/* supported SQLBulkOperations operations */
1115
#define SQL_CA1_BULK_ADD					0x00010000L
1116
#define SQL_CA1_BULK_UPDATE_BY_BOOKMARK		0x00020000L
1117
#define SQL_CA1_BULK_DELETE_BY_BOOKMARK		0x00040000L
1118
#define SQL_CA1_BULK_FETCH_BY_BOOKMARK		0x00080000L
1119
#endif  /* ODBCVER >= 0x0300 */
1120
1121
/* bitmasks for SQL_DYNAMIC_CURSOR_ATTRIBUTES2,
1122
 * SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2,
1123
 * SQL_KEYSET_CURSOR_ATTRIBUTES2, and SQL_STATIC_CURSOR_ATTRIBUTES2
1124
 */
1125
#if (ODBCVER >= 0x0300)
1126
/* supported values for SQL_ATTR_SCROLL_CONCURRENCY */
1127
#define SQL_CA2_READ_ONLY_CONCURRENCY		0x00000001L
1128
#define SQL_CA2_LOCK_CONCURRENCY			0x00000002L
1129
#define SQL_CA2_OPT_ROWVER_CONCURRENCY		0x00000004L
1130
#define SQL_CA2_OPT_VALUES_CONCURRENCY		0x00000008L
1131
1132
/* sensitivity of the cursor to its own inserts, deletes, and updates */
1133
#define SQL_CA2_SENSITIVITY_ADDITIONS		0x00000010L
1134
#define SQL_CA2_SENSITIVITY_DELETIONS		0x00000020L
1135
#define SQL_CA2_SENSITIVITY_UPDATES			0x00000040L
1136
1137
/* semantics of SQL_ATTR_MAX_ROWS */
1138
#define SQL_CA2_MAX_ROWS_SELECT				0x00000080L
1139
#define SQL_CA2_MAX_ROWS_INSERT				0x00000100L
1140
#define SQL_CA2_MAX_ROWS_DELETE				0x00000200L
1141
#define SQL_CA2_MAX_ROWS_UPDATE				0x00000400L
1142
#define SQL_CA2_MAX_ROWS_CATALOG			0x00000800L
1143
#define SQL_CA2_MAX_ROWS_AFFECTS_ALL		(SQL_CA2_MAX_ROWS_SELECT | \
1144
					SQL_CA2_MAX_ROWS_INSERT | SQL_CA2_MAX_ROWS_DELETE | \
1145
					SQL_CA2_MAX_ROWS_UPDATE | SQL_CA2_MAX_ROWS_CATALOG)
1146
1147
/* semantics of SQL_DIAG_CURSOR_ROW_COUNT */
1148
#define SQL_CA2_CRC_EXACT					0x00001000L
1149
#define SQL_CA2_CRC_APPROXIMATE				0x00002000L
1150
1151
/* the kinds of positioned statements that can be simulated */
1152
#define SQL_CA2_SIMULATE_NON_UNIQUE			0x00004000L
1153
#define SQL_CA2_SIMULATE_TRY_UNIQUE			0x00008000L
1154
#define SQL_CA2_SIMULATE_UNIQUE				0x00010000L
1155
#endif  /* ODBCVER >= 0x0300 */
1156
1157
/* SQL_ODBC_API_CONFORMANCE values */
1158
1159
#define SQL_OAC_NONE                        0x0000
1160
#define SQL_OAC_LEVEL1                      0x0001
1161
#define SQL_OAC_LEVEL2                      0x0002
1162
1163
/* SQL_ODBC_SAG_CLI_CONFORMANCE values */
1164
1165
#define SQL_OSCC_NOT_COMPLIANT              0x0000
1166
#define SQL_OSCC_COMPLIANT                  0x0001
1167
1168
/* SQL_ODBC_SQL_CONFORMANCE values */
1169
1170
#define SQL_OSC_MINIMUM                     0x0000
1171
#define SQL_OSC_CORE                        0x0001
1172
#define SQL_OSC_EXTENDED                    0x0002
1173
1174
1175
/* SQL_CONCAT_NULL_BEHAVIOR values */
1176
1177
#define SQL_CB_NULL                         0x0000
1178
#define SQL_CB_NON_NULL                     0x0001
1179
1180
/* SQL_SCROLL_OPTIONS masks */
1181
1182
#define SQL_SO_FORWARD_ONLY                 0x00000001L
1183
#define SQL_SO_KEYSET_DRIVEN                0x00000002L
1184
#define SQL_SO_DYNAMIC                      0x00000004L
1185
#define SQL_SO_MIXED                        0x00000008L
1186
#define SQL_SO_STATIC                       0x00000010L
1187
1188
/* SQL_FETCH_DIRECTION masks */
1189
1190
/* SQL_FETCH_RESUME is no longer supported
1191
#define SQL_FD_FETCH_RESUME                 0x00000040L
1192
*/
1193
#define SQL_FD_FETCH_BOOKMARK               0x00000080L
1194
1195
/* SQL_TXN_ISOLATION_OPTION masks */
1196
/* SQL_TXN_VERSIONING is no longer supported
1197
#define SQL_TXN_VERSIONING                  0x00000010L
1198
*/
1199
1200
/* SQL_CORRELATION_NAME values */
1201
1202
#define SQL_CN_NONE                         0x0000
1203
#define SQL_CN_DIFFERENT                    0x0001
1204
#define SQL_CN_ANY                          0x0002
1205
1206
/* SQL_NON_NULLABLE_COLUMNS values */
1207
1208
#define SQL_NNC_NULL                        0x0000
1209
#define SQL_NNC_NON_NULL                    0x0001
1210
1211
/* SQL_NULL_COLLATION values */
1212
1213
#define SQL_NC_START                        0x0002
1214
#define SQL_NC_END                          0x0004
1215
1216
/* SQL_FILE_USAGE values */
1217
1218
#define SQL_FILE_NOT_SUPPORTED              0x0000
1219
#define SQL_FILE_TABLE                      0x0001
1220
#define SQL_FILE_QUALIFIER                  0x0002
1221
#define SQL_FILE_CATALOG					SQL_FILE_QUALIFIER	// ODBC 3.0
1222
1223
1224
/* SQL_GETDATA_EXTENSIONS values */
1225
1226
#define SQL_GD_BLOCK                        0x00000004L
1227
#define SQL_GD_BOUND                        0x00000008L
1228
1229
/* SQL_POSITIONED_STATEMENTS masks */
1230
1231
#define SQL_PS_POSITIONED_DELETE            0x00000001L
1232
#define SQL_PS_POSITIONED_UPDATE            0x00000002L
1233
#define SQL_PS_SELECT_FOR_UPDATE            0x00000004L
1234
1235
/* SQL_GROUP_BY values */
1236
1237
#define SQL_GB_NOT_SUPPORTED                0x0000
1238
#define SQL_GB_GROUP_BY_EQUALS_SELECT       0x0001
1239
#define SQL_GB_GROUP_BY_CONTAINS_SELECT     0x0002
1240
#define SQL_GB_NO_RELATION                  0x0003
1241
#if (ODBCVER >= 0x0300)
1242
#define	SQL_GB_COLLATE						0x0004
1243
1244
#endif  /* ODBCVER >= 0x0300 */
1245
1246
/* SQL_OWNER_USAGE masks */
1247
1248
#define SQL_OU_DML_STATEMENTS               0x00000001L
1249
#define SQL_OU_PROCEDURE_INVOCATION         0x00000002L
1250
#define SQL_OU_TABLE_DEFINITION             0x00000004L
1251
#define SQL_OU_INDEX_DEFINITION             0x00000008L
1252
#define SQL_OU_PRIVILEGE_DEFINITION         0x00000010L
1253
1254
/* SQL_SCHEMA_USAGE masks */
1255
#if (ODBCVER >= 0x0300)
1256
#define SQL_SU_DML_STATEMENTS			SQL_OU_DML_STATEMENTS
1257
#define SQL_SU_PROCEDURE_INVOCATION		SQL_OU_PROCEDURE_INVOCATION
1258
#define SQL_SU_TABLE_DEFINITION			SQL_OU_TABLE_DEFINITION
1259
#define SQL_SU_INDEX_DEFINITION			SQL_OU_INDEX_DEFINITION
1260
#define SQL_SU_PRIVILEGE_DEFINITION		SQL_OU_PRIVILEGE_DEFINITION
1261
#endif  /* ODBCVER >= 0x0300 */
1262
1263
/* SQL_QUALIFIER_USAGE masks */
1264
1265
#define SQL_QU_DML_STATEMENTS               0x00000001L
1266
#define SQL_QU_PROCEDURE_INVOCATION         0x00000002L
1267
#define SQL_QU_TABLE_DEFINITION             0x00000004L
1268
#define SQL_QU_INDEX_DEFINITION             0x00000008L
1269
#define SQL_QU_PRIVILEGE_DEFINITION         0x00000010L
1270
1271
#if (ODBCVER >= 0x0300)
1272
/* SQL_CATALOG_USAGE masks */
1273
#define SQL_CU_DML_STATEMENTS			SQL_QU_DML_STATEMENTS
1274
#define SQL_CU_PROCEDURE_INVOCATION		SQL_QU_PROCEDURE_INVOCATION
1275
#define SQL_CU_TABLE_DEFINITION			SQL_QU_TABLE_DEFINITION
1276
#define SQL_CU_INDEX_DEFINITION			SQL_QU_INDEX_DEFINITION
1277
#define SQL_CU_PRIVILEGE_DEFINITION		SQL_QU_PRIVILEGE_DEFINITION
1278
#endif  /* ODBCVER >= 0x0300 */
1279
1280
/* SQL_SUBQUERIES masks */
1281
1282
#define SQL_SQ_COMPARISON                   0x00000001L
1283
#define SQL_SQ_EXISTS                       0x00000002L
1284
#define SQL_SQ_IN                           0x00000004L
1285
#define SQL_SQ_QUANTIFIED                   0x00000008L
1286
#define SQL_SQ_CORRELATED_SUBQUERIES        0x00000010L
1287
1288
/* SQL_UNION masks */
1289
1290
#define SQL_U_UNION                         0x00000001L
1291
#define SQL_U_UNION_ALL                     0x00000002L
1292
1293
/* SQL_BOOKMARK_PERSISTENCE values */
1294
1295
#define SQL_BP_CLOSE                        0x00000001L
1296
#define SQL_BP_DELETE                       0x00000002L
1297
#define SQL_BP_DROP                         0x00000004L
1298
#define SQL_BP_TRANSACTION                  0x00000008L
1299
#define SQL_BP_UPDATE                       0x00000010L
1300
#define SQL_BP_OTHER_HSTMT                  0x00000020L
1301
#define SQL_BP_SCROLL                       0x00000040L
1302
1303
/* SQL_STATIC_SENSITIVITY values */
1304
1305
#define SQL_SS_ADDITIONS                    0x00000001L
1306
#define SQL_SS_DELETIONS                    0x00000002L
1307
#define SQL_SS_UPDATES                      0x00000004L
1308
1309
/* SQL_VIEW values */
1310
#define	SQL_CV_CREATE_VIEW					0x00000001L
1311
#define	SQL_CV_CHECK_OPTION					0x00000002L
1312
#define	SQL_CV_CASCADED						0x00000004L
1313
#define	SQL_CV_LOCAL						0x00000008L
1314
1315
/* SQL_LOCK_TYPES masks */
1316
1317
#define SQL_LCK_NO_CHANGE                   0x00000001L
1318
#define SQL_LCK_EXCLUSIVE                   0x00000002L
1319
#define SQL_LCK_UNLOCK                      0x00000004L
1320
1321
/* SQL_POS_OPERATIONS masks */
1322
1323
#define SQL_POS_POSITION                    0x00000001L
1324
#define SQL_POS_REFRESH                     0x00000002L
1325
#define SQL_POS_UPDATE                      0x00000004L
1326
#define SQL_POS_DELETE                      0x00000008L
1327
#define SQL_POS_ADD                         0x00000010L
1328
1329
/* SQL_QUALIFIER_LOCATION values */
1330
1331
#define SQL_QL_START                        0x0001
1332
#define SQL_QL_END                          0x0002
1333
1334
/* Here start return values for ODBC 3.0 SQLGetInfo */
1335
1336
#if (ODBCVER >= 0x0300)
1337
/* SQL_AGGREGATE_FUNCTIONS bitmasks */
1338
#define SQL_AF_AVG						0x00000001L
1339
#define SQL_AF_COUNT					0x00000002L
1340
#define SQL_AF_MAX						0x00000004L
1341
#define SQL_AF_MIN						0x00000008L
1342
#define SQL_AF_SUM						0x00000010L
1343
#define SQL_AF_DISTINCT					0x00000020L
1344
#define SQL_AF_ALL						0x00000040L
1345
1346
/* SQL_SQL_CONFORMANCE bit masks */
1347
#define	SQL_SC_SQL92_ENTRY				0x00000001L
1348
#define	SQL_SC_FIPS127_2_TRANSITIONAL	0x00000002L
1349
#define	SQL_SC_SQL92_INTERMEDIATE		0x00000004L
1350
#define	SQL_SC_SQL92_FULL				0x00000008L
1351
1352
/* SQL_DATETIME_LITERALS masks */
1353
#define SQL_DL_SQL92_DATE						0x00000001L
1354
#define SQL_DL_SQL92_TIME						0x00000002L
1355
#define SQL_DL_SQL92_TIMESTAMP					0x00000004L
1356
#define SQL_DL_SQL92_INTERVAL_YEAR				0x00000008L
1357
#define SQL_DL_SQL92_INTERVAL_MONTH				0x00000010L
1358
#define SQL_DL_SQL92_INTERVAL_DAY				0x00000020L
1359
#define SQL_DL_SQL92_INTERVAL_HOUR				0x00000040L
1360
#define	SQL_DL_SQL92_INTERVAL_MINUTE			0x00000080L
1361
#define SQL_DL_SQL92_INTERVAL_SECOND			0x00000100L
1362
#define SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH		0x00000200L
1363
#define SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR		0x00000400L
1364
#define SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE		0x00000800L
1365
#define SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND		0x00001000L
1366
#define SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE	0x00002000L
1367
#define SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND	0x00004000L
1368
#define SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND	0x00008000L
1369
1370
/* SQL_CATALOG_LOCATION values */
1371
#define SQL_CL_START						SQL_QL_START
1372
#define SQL_CL_END							SQL_QL_END
1373
1374
/* values for SQL_BATCH_ROW_COUNT */
1375
#define SQL_BRC_PROCEDURES			0x0000001
1376
#define	SQL_BRC_EXPLICIT			0x0000002
1377
#define	SQL_BRC_ROLLED_UP			0x0000004
1378
1379
/* bitmasks for SQL_BATCH_SUPPORT */
1380
#define SQL_BS_SELECT_EXPLICIT				0x00000001L
1381
#define SQL_BS_ROW_COUNT_EXPLICIT			0x00000002L
1382
#define SQL_BS_SELECT_PROC					0x00000004L
1383
#define SQL_BS_ROW_COUNT_PROC				0x00000008L
1384
1385
/* Values for SQL_PARAM_ARRAY_ROW_COUNTS getinfo */
1386
#define SQL_PARC_BATCH		1
1387
#define SQL_PARC_NO_BATCH	2
1388
1389
/* values for SQL_PARAM_ARRAY_SELECTS */
1390
#define SQL_PAS_BATCH				1
1391
#define SQL_PAS_NO_BATCH			2
1392
#define SQL_PAS_NO_SELECT			3
1393
1394
/* Bitmasks for SQL_INDEX_KEYWORDS */
1395
#define SQL_IK_NONE							0x00000000L
1396
#define SQL_IK_ASC							0x00000001L
1397
#define SQL_IK_DESC							0x00000002L
1398
#define SQL_IK_ALL							(SQL_IK_ASC | SQL_IK_DESC)
1399
1400
/* Bitmasks for SQL_INFO_SCHEMA_VIEWS */
1401
1402
#define SQL_ISV_ASSERTIONS					0x00000001L
1403
#define SQL_ISV_CHARACTER_SETS				0x00000002L
1404
#define SQL_ISV_CHECK_CONSTRAINTS			0x00000004L
1405
#define SQL_ISV_COLLATIONS					0x00000008L
1406
#define SQL_ISV_COLUMN_DOMAIN_USAGE			0x00000010L
1407
#define SQL_ISV_COLUMN_PRIVILEGES			0x00000020L
1408
#define SQL_ISV_COLUMNS						0x00000040L
1409
#define SQL_ISV_CONSTRAINT_COLUMN_USAGE		0x00000080L
1410
#define SQL_ISV_CONSTRAINT_TABLE_USAGE		0x00000100L
1411
#define SQL_ISV_DOMAIN_CONSTRAINTS			0x00000200L
1412
#define SQL_ISV_DOMAINS						0x00000400L
1413
#define SQL_ISV_KEY_COLUMN_USAGE			0x00000800L
1414
#define SQL_ISV_REFERENTIAL_CONSTRAINTS		0x00001000L
1415
#define SQL_ISV_SCHEMATA					0x00002000L
1416
#define SQL_ISV_SQL_LANGUAGES				0x00004000L
1417
#define	SQL_ISV_TABLE_CONSTRAINTS			0x00008000L
1418
#define SQL_ISV_TABLE_PRIVILEGES			0x00010000L
1419
#define SQL_ISV_TABLES						0x00020000L
1420
#define SQL_ISV_TRANSLATIONS				0x00040000L
1421
#define SQL_ISV_USAGE_PRIVILEGES			0x00080000L
1422
#define SQL_ISV_VIEW_COLUMN_USAGE			0x00100000L
1423
#define SQL_ISV_VIEW_TABLE_USAGE			0x00200000L
1424
#define SQL_ISV_VIEWS						0x00400000L
1425
1426
/* Bitmasks for SQL_ASYNC_MODE */
1427
1428
#define	SQL_AM_NONE			0
1429
#define	SQL_AM_CONNECTION	1
1430
#define	SQL_AM_STATEMENT	2
1431
1432
/* Bitmasks for SQL_ALTER_DOMAIN */
1433
#define SQL_AD_CONSTRAINT_NAME_DEFINITION			0x00000001L
1434
#define	SQL_AD_ADD_DOMAIN_CONSTRAINT	 			0x00000002L
1435
#define	SQL_AD_DROP_DOMAIN_CONSTRAINT	 			0x00000004L
1436
#define	SQL_AD_ADD_DOMAIN_DEFAULT   	 			0x00000008L
1437
#define	SQL_AD_DROP_DOMAIN_DEFAULT   	 			0x00000010L
1438
#define SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED	0x00000020L
1439
#define SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE	0x00000040L
1440
#define SQL_AD_ADD_CONSTRAINT_DEFERRABLE			0x00000080L
1441
#define SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE		0x00000100L
1442
1443
1444
/* SQL_CREATE_SCHEMA bitmasks */
1445
#define	SQL_CS_CREATE_SCHEMA				0x00000001L
1446
#define	SQL_CS_AUTHORIZATION				0x00000002L
1447
#define	SQL_CS_DEFAULT_CHARACTER_SET		0x00000004L
1448
1449
/* SQL_CREATE_TRANSLATION bitmasks */
1450
#define	SQL_CTR_CREATE_TRANSLATION			0x00000001L
1451
1452
/* SQL_CREATE_ASSERTION bitmasks */
1453
#define	SQL_CA_CREATE_ASSERTION					0x00000001L
1454
#define	SQL_CA_CONSTRAINT_INITIALLY_DEFERRED	0x00000010L
1455
#define	SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE	0x00000020L
1456
#define	SQL_CA_CONSTRAINT_DEFERRABLE			0x00000040L
1457
#define	SQL_CA_CONSTRAINT_NON_DEFERRABLE		0x00000080L
1458
1459
/* SQL_CREATE_CHARACTER_SET bitmasks */
1460
#define	SQL_CCS_CREATE_CHARACTER_SET		0x00000001L
1461
#define	SQL_CCS_COLLATE_CLAUSE				0x00000002L
1462
#define	SQL_CCS_LIMITED_COLLATION			0x00000004L
1463
1464
/* SQL_CREATE_COLLATION bitmasks */
1465
#define	SQL_CCOL_CREATE_COLLATION			0x00000001L
1466
1467
/* SQL_CREATE_DOMAIN bitmasks */
1468
#define	SQL_CDO_CREATE_DOMAIN					0x00000001L
1469
#define	SQL_CDO_DEFAULT							0x00000002L
1470
#define	SQL_CDO_CONSTRAINT						0x00000004L
1471
#define	SQL_CDO_COLLATION						0x00000008L
1472
#define SQL_CDO_CONSTRAINT_NAME_DEFINITION		0x00000010L
1473
#define SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED	0x00000020L
1474
#define SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE	0x00000040L
1475
#define SQL_CDO_CONSTRAINT_DEFERRABLE			0x00000080L
1476
#define SQL_CDO_CONSTRAINT_NON_DEFERRABLE		0x00000100L
1477
1478
/* SQL_CREATE_TABLE bitmasks */
1479
#define	SQL_CT_CREATE_TABLE						0x00000001L
1480
#define	SQL_CT_COMMIT_PRESERVE					0x00000002L
1481
#define	SQL_CT_COMMIT_DELETE					0x00000004L
1482
#define	SQL_CT_GLOBAL_TEMPORARY					0x00000008L
1483
#define	SQL_CT_LOCAL_TEMPORARY					0x00000010L
1484
#define	SQL_CT_CONSTRAINT_INITIALLY_DEFERRED	0x00000020L
1485
#define	SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE	0x00000040L
1486
#define	SQL_CT_CONSTRAINT_DEFERRABLE			0x00000080L
1487
#define	SQL_CT_CONSTRAINT_NON_DEFERRABLE		0x00000100L
1488
#define SQL_CT_COLUMN_CONSTRAINT				0x00000200L
1489
#define SQL_CT_COLUMN_DEFAULT					0x00000400L
1490
#define SQL_CT_COLUMN_COLLATION					0x00000800L
1491
#define SQL_CT_TABLE_CONSTRAINT					0x00001000L
1492
#define SQL_CT_CONSTRAINT_NAME_DEFINITION		0x00002000L
1493
1494
/* SQL_DDL_INDEX bitmasks */
1495
#define SQL_DI_CREATE_INDEX						0x00000001L
1496
#define SQL_DI_DROP_INDEX						0x00000002L
1497
1498
/* SQL_DROP_COLLATION bitmasks */
1499
#define	SQL_DC_DROP_COLLATION					0x00000001L
1500
1501
/* SQL_DROP_DOMAIN bitmasks */
1502
#define	SQL_DD_DROP_DOMAIN						0x00000001L
1503
#define	SQL_DD_RESTRICT							0x00000002L
1504
#define	SQL_DD_CASCADE							0x00000004L
1505
1506
/* SQL_DROP_SCHEMA bitmasks */
1507
#define	SQL_DS_DROP_SCHEMA						0x00000001L
1508
#define SQL_DS_RESTRICT							0x00000002L
1509
#define	SQL_DS_CASCADE							0x00000004L
1510
1511
/* SQL_DROP_CHARACTER_SET bitmasks */
1512
#define	SQL_DCS_DROP_CHARACTER_SET				0x00000001L
1513
1514
/* SQL_DROP_ASSERTION bitmasks */
1515
#define	SQL_DA_DROP_ASSERTION					0x00000001L
1516
1517
/* SQL_DROP_TABLE bitmasks */
1518
#define	SQL_DT_DROP_TABLE						0x00000001L
1519
#define	SQL_DT_RESTRICT							0x00000002L
1520
#define	SQL_DT_CASCADE							0x00000004L
1521
1522
/* SQL_DROP_TRANSLATION bitmasks */
1523
#define	SQL_DTR_DROP_TRANSLATION				0x00000001L
1524
1525
/* SQL_DROP_VIEW bitmasks */
1526
#define	SQL_DV_DROP_VIEW						0x00000001L
1527
#define	SQL_DV_RESTRICT							0x00000002L
1528
#define	SQL_DV_CASCADE							0x00000004L
1529
1530
/* SQL_INSERT_STATEMENT bitmasks */
1531
#define	SQL_IS_INSERT_LITERALS					0x00000001L
1532
#define SQL_IS_INSERT_SEARCHED					0x00000002L
1533
#define SQL_IS_SELECT_INTO						0x00000004L
1534
1535
/* SQL_ODBC_INTERFACE_CONFORMANCE values */
1536
#define SQL_OIC_CORE							1UL
1537
#define SQL_OIC_LEVEL1							2UL
1538
#define SQL_OIC_LEVEL2							3UL
1539
1540
/* SQL_SQL92_FOREIGN_KEY_DELETE_RULE bitmasks */
1541
#define SQL_SFKD_CASCADE						0x00000001L
1542
#define SQL_SFKD_NO_ACTION						0x00000002L
1543
#define SQL_SFKD_SET_DEFAULT					0x00000004L
1544
#define SQL_SFKD_SET_NULL						0x00000008L
1545
1546
/* SQL_SQL92_FOREIGN_KEY_UPDATE_RULE bitmasks */
1547
#define SQL_SFKU_CASCADE						0x00000001L
1548
#define SQL_SFKU_NO_ACTION						0x00000002L
1549
#define SQL_SFKU_SET_DEFAULT					0x00000004L
1550
#define SQL_SFKU_SET_NULL						0x00000008L
1551
1552
/* SQL_SQL92_GRANT	bitmasks */
1553
#define SQL_SG_USAGE_ON_DOMAIN					0x00000001L
1554
#define SQL_SG_USAGE_ON_CHARACTER_SET			0x00000002L
1555
#define SQL_SG_USAGE_ON_COLLATION				0x00000004L
1556
#define SQL_SG_USAGE_ON_TRANSLATION				0x00000008L
1557
#define SQL_SG_WITH_GRANT_OPTION				0x00000010L
1558
#define SQL_SG_DELETE_TABLE						0x00000020L
1559
#define SQL_SG_INSERT_TABLE						0x00000040L
1560
#define SQL_SG_INSERT_COLUMN					0x00000080L
1561
#define SQL_SG_REFERENCES_TABLE					0x00000100L
1562
#define SQL_SG_REFERENCES_COLUMN				0x00000200L
1563
#define SQL_SG_SELECT_TABLE						0x00000400L
1564
#define SQL_SG_UPDATE_TABLE						0x00000800L
1565
#define SQL_SG_UPDATE_COLUMN					0x00001000L
1566
1567
/* SQL_SQL92_PREDICATES bitmasks */
1568
#define SQL_SP_EXISTS							0x00000001L
1569
#define SQL_SP_ISNOTNULL						0x00000002L
1570
#define SQL_SP_ISNULL							0x00000004L
1571
#define SQL_SP_MATCH_FULL						0x00000008L
1572
#define SQL_SP_MATCH_PARTIAL					0x00000010L
1573
#define SQL_SP_MATCH_UNIQUE_FULL				0x00000020L
1574
#define SQL_SP_MATCH_UNIQUE_PARTIAL				0x00000040L
1575
#define SQL_SP_OVERLAPS							0x00000080L
1576
#define SQL_SP_UNIQUE							0x00000100L
1577
#define SQL_SP_LIKE								0x00000200L
1578
#define SQL_SP_IN								0x00000400L
1579
#define SQL_SP_BETWEEN							0x00000800L
1580
#define SQL_SP_COMPARISON						0x00001000L
1581
#define SQL_SP_QUANTIFIED_COMPARISON			0x00002000L
1582
1583
/* SQL_SQL92_RELATIONAL_JOIN_OPERATORS bitmasks */
1584
#define SQL_SRJO_CORRESPONDING_CLAUSE			0x00000001L
1585
#define SQL_SRJO_CROSS_JOIN						0x00000002L
1586
#define SQL_SRJO_EXCEPT_JOIN					0x00000004L
1587
#define SQL_SRJO_FULL_OUTER_JOIN				0x00000008L
1588
#define SQL_SRJO_INNER_JOIN						0x00000010L
1589
#define SQL_SRJO_INTERSECT_JOIN					0x00000020L
1590
#define SQL_SRJO_LEFT_OUTER_JOIN				0x00000040L
1591
#define SQL_SRJO_NATURAL_JOIN					0x00000080L
1592
#define SQL_SRJO_RIGHT_OUTER_JOIN				0x00000100L
1593
#define SQL_SRJO_UNION_JOIN						0x00000200L
1594
1595
/* SQL_SQL92_REVOKE bitmasks */
1596
#define SQL_SR_USAGE_ON_DOMAIN					0x00000001L
1597
#define SQL_SR_USAGE_ON_CHARACTER_SET			0x00000002L
1598
#define SQL_SR_USAGE_ON_COLLATION				0x00000004L
1599
#define SQL_SR_USAGE_ON_TRANSLATION				0x00000008L
1600
#define SQL_SR_GRANT_OPTION_FOR					0x00000010L
1601
#define SQL_SR_CASCADE							0x00000020L
1602
#define SQL_SR_RESTRICT							0x00000040L
1603
#define SQL_SR_DELETE_TABLE						0x00000080L
1604
#define SQL_SR_INSERT_TABLE						0x00000100L
1605
#define SQL_SR_INSERT_COLUMN					0x00000200L
1606
#define SQL_SR_REFERENCES_TABLE					0x00000400L
1607
#define SQL_SR_REFERENCES_COLUMN				0x00000800L
1608
#define SQL_SR_SELECT_TABLE						0x00001000L
1609
#define SQL_SR_UPDATE_TABLE						0x00002000L
1610
#define SQL_SR_UPDATE_COLUMN					0x00004000L
1611
1612
/* SQL_SQL92_ROW_VALUE_CONSTRUCTOR bitmasks */
1613
#define SQL_SRVC_VALUE_EXPRESSION				0x00000001L
1614
#define SQL_SRVC_NULL							0x00000002L
1615
#define SQL_SRVC_DEFAULT						0x00000004L
1616
#define SQL_SRVC_ROW_SUBQUERY					0x00000008L
1617
1618
/* SQL_SQL92_VALUE_EXPRESSIONS bitmasks */
1619
#define SQL_SVE_CASE							0x00000001L
1620
#define SQL_SVE_CAST							0x00000002L
1621
#define SQL_SVE_COALESCE						0x00000004L
1622
#define SQL_SVE_NULLIF							0x00000008L
1623
1624
/* SQL_STANDARD_CLI_CONFORMANCE bitmasks */
1625
#define SQL_SCC_XOPEN_CLI_VERSION1				0x00000001L
1626
#define SQL_SCC_ISO92_CLI						0x00000002L
1627
1628
/* SQL_UNION_STATEMENT bitmasks */
1629
#define SQL_US_UNION							SQL_U_UNION
1630
#define SQL_US_UNION_ALL						SQL_U_UNION_ALL
1631
1632
#endif  /* ODBCVER >= 0x0300 */
1633
1634
/* SQL_DTC_TRANSITION_COST bitmasks */
1635
#define SQL_DTC_ENLIST_EXPENSIVE				0x00000001L
1636
#define SQL_DTC_UNENLIST_EXPENSIVE				0x00000002L
1637
1638
/* additional SQLDataSources fetch directions */
1639
#if (ODBCVER >= 0x0300)
1640
#define SQL_FETCH_FIRST_USER				31
1641
#define SQL_FETCH_FIRST_SYSTEM				32
1642
#endif  /* ODBCVER >= 0x0300 */
1643
1644
1645
/* Defines for SQLSetPos */
1646
#define SQL_ENTIRE_ROWSET            0
1647
1648
/* Operations in SQLSetPos */
1649
#define SQL_POSITION                 0               /*      1.0 FALSE */
1650
#define SQL_REFRESH                  1               /*      1.0 TRUE */
1651
#define SQL_UPDATE                   2
1652
#define SQL_DELETE                   3
1653
1654
/* Operations in SQLBulkOperations */
1655
#define SQL_ADD                      4
1656
#define	SQL_SETPOS_MAX_OPTION_VALUE			SQL_ADD
1657
#if (ODBCVER >= 0x0300)
1658
#define SQL_UPDATE_BY_BOOKMARK		 5
1659
#define SQL_DELETE_BY_BOOKMARK		 6
1660
#define	SQL_FETCH_BY_BOOKMARK		 7
1661
1662
#endif /*  ODBCVER >= 0x0300 */
1663
1664
/* Lock options in SQLSetPos */
1665
#define SQL_LOCK_NO_CHANGE           0               /*      1.0 FALSE */
1666
#define SQL_LOCK_EXCLUSIVE           1               /*      1.0 TRUE */
1667
#define SQL_LOCK_UNLOCK              2
1668
1669
#define	SQL_SETPOS_MAX_LOCK_VALUE		SQL_LOCK_UNLOCK
1670
1671
/* Macros for SQLSetPos */
1672
#define SQL_POSITION_TO(hstmt,irow) SQLSetPos(hstmt,irow,SQL_POSITION,SQL_LOCK_NO_CHANGE)
1673
#define SQL_LOCK_RECORD(hstmt,irow,fLock) SQLSetPos(hstmt,irow,SQL_POSITION,fLock)
1674
#define SQL_REFRESH_RECORD(hstmt,irow,fLock) SQLSetPos(hstmt,irow,SQL_REFRESH,fLock)
1675
#define SQL_UPDATE_RECORD(hstmt,irow) SQLSetPos(hstmt,irow,SQL_UPDATE,SQL_LOCK_NO_CHANGE)
1676
#define SQL_DELETE_RECORD(hstmt,irow) SQLSetPos(hstmt,irow,SQL_DELETE,SQL_LOCK_NO_CHANGE)
1677
#define SQL_ADD_RECORD(hstmt,irow) SQLSetPos(hstmt,irow,SQL_ADD,SQL_LOCK_NO_CHANGE)
1678
1679
/* Column types and scopes in SQLSpecialColumns.  */
1680
#define SQL_BEST_ROWID                  1
1681
#define SQL_ROWVER                      2
1682
1683
/* Defines for SQLSpecialColumns (returned in the result set)
1684
   SQL_PC_UNKNOWN and SQL_PC_PSEUDO are defined in sql.h */
1685
#define SQL_PC_NOT_PSEUDO               1
1686
1687
/* Defines for SQLStatistics */
1688
#define SQL_QUICK                       0
1689
#define SQL_ENSURE                      1
1690
1691
/* Defines for SQLStatistics (returned in the result set)
1692
   SQL_INDEX_CLUSTERED, SQL_INDEX_HASHED, and SQL_INDEX_OTHER are
1693
   defined in sql.h */
1694
#define SQL_TABLE_STAT                  0
1695
1696
1697
/* Defines for SQLTables */
1698
#if (ODBCVER >= 0x0300)
1699
#define SQL_ALL_CATALOGS				"%"
1700
#define SQL_ALL_SCHEMAS					"%"
1701
#define SQL_ALL_TABLE_TYPES				"%"
1702
#endif  /* ODBCVER >= 0x0300 */
1703
1704
/* Options for SQLDriverConnect */
1705
#define SQL_DRIVER_NOPROMPT             0
1706
#define SQL_DRIVER_COMPLETE             1
1707
#define SQL_DRIVER_PROMPT               2
1708
#define SQL_DRIVER_COMPLETE_REQUIRED    3
1709
1710
#ifndef RC_INVOKED
1711
1712
SQLRETURN SQL_API SQLDriverConnect(
1713
    SQLHDBC            hdbc,
1714
    SQLHWND            hwnd,
1715
    SQLCHAR 		  *szConnStrIn,
1716
    SQLSMALLINT        cbConnStrIn,
1717
    SQLCHAR           *szConnStrOut,
1718
    SQLSMALLINT        cbConnStrOutMax,
1719
    SQLSMALLINT 	  *pcbConnStrOut,
1720
    SQLUSMALLINT       fDriverCompletion);
1721
1722
#endif /* RC_INVOKED */
1723
1724
/* Level 2 Functions                             */
1725
1726
/* SQLExtendedFetch "fFetchType" values */
1727
#define SQL_FETCH_BOOKMARK               8
1728
1729
/* SQLExtendedFetch "rgfRowStatus" element values */
1730
#define SQL_ROW_SUCCESS                  0
1731
#define SQL_ROW_DELETED                  1
1732
#define SQL_ROW_UPDATED                  2
1733
#define SQL_ROW_NOROW                    3
1734
#define SQL_ROW_ADDED                    4
1735
#define SQL_ROW_ERROR                    5
1736
#if (ODBCVER >= 0x0300)
1737
#define SQL_ROW_SUCCESS_WITH_INFO		 6
1738
#define SQL_ROW_PROCEED					 0
1739
#define SQL_ROW_IGNORE					 1
1740
#endif
1741
1742
/* value for SQL_DESC_ARRAY_STATUS_PTR */
1743
#if (ODBCVER >= 0x0300)
1744
#define SQL_PARAM_SUCCESS				0
1745
#define SQL_PARAM_SUCCESS_WITH_INFO		6
1746
#define SQL_PARAM_ERROR					5
1747
#define SQL_PARAM_UNUSED				7
1748
#define SQL_PARAM_DIAG_UNAVAILABLE		1
1749
1750
#define SQL_PARAM_PROCEED				0
1751
#define SQL_PARAM_IGNORE				1
1752
#endif  /* ODBCVER >= 0x0300 */
1753
1754
/* Defines for SQLForeignKeys (UPDATE_RULE and DELETE_RULE) */
1755
#define SQL_CASCADE                      0
1756
#define SQL_RESTRICT                     1
1757
#define SQL_SET_NULL                     2
1758
#if (ODBCVER >= 0x0250)
1759
#define SQL_NO_ACTION			 3
1760
#define SQL_SET_DEFAULT			 4
1761
#endif  /* ODBCVER >= 0x0250 */
1762
1763
#if (ODBCVER >= 0x0300)
1764
/* Note that the following are in a different column of SQLForeignKeys than */
1765
/* the previous #defines.   These are for DEFERRABILITY.                    */
1766
1767
#define SQL_INITIALLY_DEFERRED			5
1768
#define SQL_INITIALLY_IMMEDIATE			6
1769
#define SQL_NOT_DEFERRABLE			7
1770
1771
#endif  /* ODBCVER >= 0x0300 */
1772
1773
/* Defines for SQLBindParameter and
1774
                           SQLProcedureColumns (returned in the result set) */
1775
#define SQL_PARAM_TYPE_UNKNOWN           0
1776
#define SQL_PARAM_INPUT                  1
1777
#define SQL_PARAM_INPUT_OUTPUT           2
1778
#define SQL_RESULT_COL                   3
1779
#define SQL_PARAM_OUTPUT                 4
1780
#define SQL_RETURN_VALUE                 5
1781
1782
/* Defines for SQLProcedures (returned in the result set) */
1783
#define SQL_PT_UNKNOWN                   0
1784
#define SQL_PT_PROCEDURE                 1
1785
#define SQL_PT_FUNCTION                  2
1786
1787
#ifndef RC_INVOKED
1788
1789
/*      This define is too large for RC */
1790
#define SQL_ODBC_KEYWORDS \
1791
"ABSOLUTE,ACTION,ADA,ADD,ALL,ALLOCATE,ALTER,AND,ANY,ARE,AS,"\
1792
"ASC,ASSERTION,AT,AUTHORIZATION,AVG,"\
1793
"BEGIN,BETWEEN,BIT,BIT_LENGTH,BOTH,BY,CASCADE,CASCADED,CASE,CAST,CATALOG,"\
1794
"CHAR,CHAR_LENGTH,CHARACTER,CHARACTER_LENGTH,CHECK,CLOSE,COALESCE,"\
1795
"COLLATE,COLLATION,COLUMN,COMMIT,CONNECT,CONNECTION,CONSTRAINT,"\
1796
"CONSTRAINTS,CONTINUE,CONVERT,CORRESPONDING,COUNT,CREATE,CROSS,CURRENT,"\
1797
"CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_USER,CURSOR,"\
1798
"DATE,DAY,DEALLOCATE,DEC,DECIMAL,DECLARE,DEFAULT,DEFERRABLE,"\
1799
"DEFERRED,DELETE,DESC,DESCRIBE,DESCRIPTOR,DIAGNOSTICS,DISCONNECT,"\
1800
"DISTINCT,DOMAIN,DOUBLE,DROP,"\
1801
"ELSE,END,END-EXEC,ESCAPE,EXCEPT,EXCEPTION,EXEC,EXECUTE,"\
1802
"EXISTS,EXTERNAL,EXTRACT,"\
1803
"FALSE,FETCH,FIRST,FLOAT,FOR,FOREIGN,FORTRAN,FOUND,FROM,FULL,"\
1804
"GET,GLOBAL,GO,GOTO,GRANT,GROUP,HAVING,HOUR,"\
1805
"IDENTITY,IMMEDIATE,IN,INCLUDE,INDEX,INDICATOR,INITIALLY,INNER,"\
1806
"INPUT,INSENSITIVE,INSERT,INT,INTEGER,INTERSECT,INTERVAL,INTO,IS,ISOLATION,"\
1807
"JOIN,KEY,LANGUAGE,LAST,LEADING,LEFT,LEVEL,LIKE,LOCAL,LOWER,"\
1808
"MATCH,MAX,MIN,MINUTE,MODULE,MONTH,"\
1809
"NAMES,NATIONAL,NATURAL,NCHAR,NEXT,NO,NONE,NOT,NULL,NULLIF,NUMERIC,"\
1810
"OCTET_LENGTH,OF,ON,ONLY,OPEN,OPTION,OR,ORDER,OUTER,OUTPUT,OVERLAPS,"\
1811
"PAD,PARTIAL,PASCAL,PLI,POSITION,PRECISION,PREPARE,PRESERVE,"\
1812
"PRIMARY,PRIOR,PRIVILEGES,PROCEDURE,PUBLIC,"\
1813
"READ,REAL,REFERENCES,RELATIVE,RESTRICT,REVOKE,RIGHT,ROLLBACK,ROWS"\
1814
"SCHEMA,SCROLL,SECOND,SECTION,SELECT,SESSION,SESSION_USER,SET,SIZE,"\
1815
"SMALLINT,SOME,SPACE,SQL,SQLCA,SQLCODE,SQLERROR,SQLSTATE,SQLWARNING,"\
1816
"SUBSTRING,SUM,SYSTEM_USER,"\
1817
"TABLE,TEMPORARY,THEN,TIME,TIMESTAMP,TIMEZONE_HOUR,TIMEZONE_MINUTE,"\
1818
"TO,TRAILING,TRANSACTION,TRANSLATE,TRANSLATION,TRIM,TRUE,"\
1819
"UNION,UNIQUE,UNKNOWN,UPDATE,UPPER,USAGE,USER,USING,"\
1820
"VALUE,VALUES,VARCHAR,VARYING,VIEW,WHEN,WHENEVER,WHERE,WITH,WORK,WRITE,"\
1821
"YEAR,ZONE"
1822
1823
SQLRETURN SQL_API SQLBrowseConnect(
1824
    SQLHDBC            hdbc,
1825
    SQLCHAR 		  *szConnStrIn,
1826
    SQLSMALLINT        cbConnStrIn,
1827
    SQLCHAR 		  *szConnStrOut,
1828
    SQLSMALLINT        cbConnStrOutMax,
1829
    SQLSMALLINT       *pcbConnStrOut);
1830
1831
#if (ODBCVER >= 0x0300)
1832
SQLRETURN	SQL_API	SQLBulkOperations(
1833
	SQLHSTMT			StatementHandle,
1834
	SQLSMALLINT			Operation);
1835
#endif  /* ODBCVER >= 0x0300 */
1836
1837
SQLRETURN SQL_API SQLColAttributes(
1838
    SQLHSTMT           hstmt,
1839
    SQLUSMALLINT       icol,
1840
    SQLUSMALLINT       fDescType,
1841
    SQLPOINTER         rgbDesc,
1842
    SQLSMALLINT        cbDescMax,
1843
    SQLSMALLINT 	  *pcbDesc,
1844
    SQLLEN 		  *pfDesc);
1845
1846
SQLRETURN SQL_API SQLColumnPrivileges(
1847
    SQLHSTMT           hstmt,
1848
    SQLCHAR 		  *szCatalogName,
1849
    SQLSMALLINT        cbCatalogName,
1850
    SQLCHAR 		  *szSchemaName,
1851
    SQLSMALLINT        cbSchemaName,
1852
    SQLCHAR 		  *szTableName,
1853
    SQLSMALLINT        cbTableName,
1854
    SQLCHAR 		  *szColumnName,
1855
    SQLSMALLINT        cbColumnName);
1856
1857
SQLRETURN SQL_API SQLDescribeParam(
1858
    SQLHSTMT           hstmt,
1859
    SQLUSMALLINT       ipar,
1860
    SQLSMALLINT 	  *pfSqlType,
1861
    SQLULEN     	  *pcbParamDef,
1862
    SQLSMALLINT 	  *pibScale,
1863
    SQLSMALLINT 	  *pfNullable);
1864
1865
SQLRETURN SQL_API SQLExtendedFetch(
1866
    SQLHSTMT           hstmt,
1867
    SQLUSMALLINT       fFetchType,
1868
    SQLLEN             irow,
1869
    SQLULEN   	      *pcrow,
1870
    SQLUSMALLINT      *rgfRowStatus);
1871
1872
SQLRETURN SQL_API SQLForeignKeys(
1873
    SQLHSTMT           hstmt,
1874
    SQLCHAR 		  *szPkCatalogName,
1875
    SQLSMALLINT        cbPkCatalogName,
1876
    SQLCHAR 		  *szPkSchemaName,
1877
    SQLSMALLINT        cbPkSchemaName,
1878
    SQLCHAR 		  *szPkTableName,
1879
    SQLSMALLINT        cbPkTableName,
1880
    SQLCHAR 		  *szFkCatalogName,
1881
    SQLSMALLINT        cbFkCatalogName,
1882
    SQLCHAR 		  *szFkSchemaName,
1883
    SQLSMALLINT        cbFkSchemaName,
1884
    SQLCHAR 		  *szFkTableName,
1885
    SQLSMALLINT        cbFkTableName);
1886
1887
SQLRETURN SQL_API SQLMoreResults(
1888
    SQLHSTMT           hstmt);
1889
1890
SQLRETURN SQL_API SQLNativeSql(
1891
    SQLHDBC            hdbc,
1892
    SQLCHAR 		  *szSqlStrIn,
1893
    SQLINTEGER         cbSqlStrIn,
1894
    SQLCHAR 		  *szSqlStr,
1895
    SQLINTEGER         cbSqlStrMax,
1896
    SQLINTEGER 		  *pcbSqlStr);
1897
1898
SQLRETURN SQL_API SQLNumParams(
1899
    SQLHSTMT           hstmt,
1900
    SQLSMALLINT 	  *pcpar);
1901
1902
SQLRETURN SQL_API SQLParamOptions(
1903
    SQLHSTMT           hstmt,
1904
    SQLULEN            crow,
1905
    SQLULEN 	      *pirow);
1906
1907
SQLRETURN SQL_API SQLPrimaryKeys(
1908
    SQLHSTMT           hstmt,
1909
    SQLCHAR 		  *szCatalogName,
1910
    SQLSMALLINT        cbCatalogName,
1911
    SQLCHAR 		  *szSchemaName,
1912
    SQLSMALLINT        cbSchemaName,
1913
    SQLCHAR 		  *szTableName,
1914
    SQLSMALLINT        cbTableName);
1915
1916
SQLRETURN SQL_API SQLProcedureColumns(
1917
    SQLHSTMT           hstmt,
1918
    SQLCHAR 		  *szCatalogName,
1919
    SQLSMALLINT        cbCatalogName,
1920
    SQLCHAR 		  *szSchemaName,
1921
    SQLSMALLINT        cbSchemaName,
1922
    SQLCHAR 		  *szProcName,
1923
    SQLSMALLINT        cbProcName,
1924
    SQLCHAR 		  *szColumnName,
1925
    SQLSMALLINT        cbColumnName);
1926
1927
SQLRETURN SQL_API SQLProcedures(
1928
    SQLHSTMT           hstmt,
1929
    SQLCHAR 		  *szCatalogName,
1930
    SQLSMALLINT        cbCatalogName,
1931
    SQLCHAR 		  *szSchemaName,
1932
    SQLSMALLINT        cbSchemaName,
1933
    SQLCHAR 		  *szProcName,
1934
    SQLSMALLINT        cbProcName);
1935
1936
SQLRETURN SQL_API SQLSetPos(
1937
    SQLHSTMT           hstmt,
1938
    SQLSETPOSIROW      irow,
1939
    SQLUSMALLINT       fOption,
1940
    SQLUSMALLINT       fLock);
1941
1942
SQLRETURN SQL_API SQLTablePrivileges(
1943
    SQLHSTMT           hstmt,
1944
    SQLCHAR 		  *szCatalogName,
1945
    SQLSMALLINT        cbCatalogName,
1946
    SQLCHAR 		  *szSchemaName,
1947
    SQLSMALLINT        cbSchemaName,
1948
    SQLCHAR 		  *szTableName,
1949
    SQLSMALLINT        cbTableName);
1950
1951
SQLRETURN SQL_API SQLDrivers(
1952
    SQLHENV            henv,
1953
    SQLUSMALLINT       fDirection,
1954
    SQLCHAR 		  *szDriverDesc,
1955
    SQLSMALLINT        cbDriverDescMax,
1956
    SQLSMALLINT 	  *pcbDriverDesc,
1957
    SQLCHAR 		  *szDriverAttributes,
1958
    SQLSMALLINT        cbDrvrAttrMax,
1959
    SQLSMALLINT 	  *pcbDrvrAttr);
1960
1961
SQLRETURN SQL_API SQLBindParameter(
1962
    SQLHSTMT           hstmt,
1963
    SQLUSMALLINT       ipar,
1964
    SQLSMALLINT        fParamType,
1965
    SQLSMALLINT        fCType,
1966
    SQLSMALLINT        fSqlType,
1967
    SQLULEN            cbColDef,
1968
    SQLSMALLINT        ibScale,
1969
    SQLPOINTER         rgbValue,
1970
    SQLLEN             cbValueMax,
1971
    SQLLEN     		  *pcbValue);
1972
1973
1974
#endif /* RC_INVOKED */
1975
1976
/*---------------------------------------------------------*/
1977
/* SQLAllocHandleStd is implemented to make SQLAllocHandle */
1978
/* compatible with X/Open standard.	 an application should */
1979
/* not call SQLAllocHandleStd directly					   */
1980
/*---------------------------------------------------------*/
1981
#ifdef ODBC_STD
1982
#define SQLAllocHandle  SQLAllocHandleStd
1983
#define SQLAllocEnv(phenv)  SQLAllocHandleStd(SQL_HANDLE_ENV, SQL_NULL_HANDLE, phenv)
1984
1985
/* Internal type subcodes */
1986
#define SQL_YEAR						SQL_CODE_YEAR
1987
#define SQL_MONTH						SQL_CODE_MONTH
1988
#define SQL_DAY							SQL_CODE_DAY
1989
#define SQL_HOUR						SQL_CODE_HOUR
1990
#define SQL_MINUTE						SQL_CODE_MINUTE
1991
#define SQL_SECOND						SQL_CODE_SECOND
1992
#define SQL_YEAR_TO_MONTH				SQL_CODE_YEAR_TO_MONTH
1993
#define SQL_DAY_TO_HOUR					SQL_CODE_DAY_TO_HOUR
1994
#define SQL_DAY_TO_MINUTE				SQL_CODE_DAY_TO_MINUTE
1995
#define SQL_DAY_TO_SECOND				SQL_CODE_DAY_TO_SECOND
1996
#define SQL_HOUR_TO_MINUTE				SQL_CODE_HOUR_TO_MINUTE
1997
#define SQL_HOUR_TO_SECOND				SQL_CODE_HOUR_TO_SECOND
1998
#define SQL_MINUTE_TO_SECOND			SQL_CODE_MINUTE_TO_SECOND
1999
#endif /* ODBC_STD */
2000
2001
#if (ODBCVER >= 0x0300)
2002
#ifndef RC_INVOKED
2003
SQLRETURN SQL_API SQLAllocHandleStd(
2004
	SQLSMALLINT		fHandleType,
2005
	SQLHANDLE		hInput,
2006
	SQLHANDLE	   *phOutput);
2007
#endif /* RC_INVOKED */
2008
#endif
2009
2010
/*      Deprecated defines from prior versions of ODBC */
2011
#define SQL_DATABASE_NAME               16    /* Use SQLGetConnectOption/SQL_CURRENT_QUALIFIER */
2012
#define SQL_FD_FETCH_PREV               SQL_FD_FETCH_PRIOR
2013
#define SQL_FETCH_PREV                  SQL_FETCH_PRIOR
2014
#define SQL_CONCUR_TIMESTAMP            SQL_CONCUR_ROWVER
2015
#define SQL_SCCO_OPT_TIMESTAMP          SQL_SCCO_OPT_ROWVER
2016
#define SQL_CC_DELETE                   SQL_CB_DELETE
2017
#define SQL_CR_DELETE                   SQL_CB_DELETE
2018
#define SQL_CC_CLOSE                    SQL_CB_CLOSE
2019
#define SQL_CR_CLOSE                    SQL_CB_CLOSE
2020
#define SQL_CC_PRESERVE                 SQL_CB_PRESERVE
2021
#define SQL_CR_PRESERVE                 SQL_CB_PRESERVE
2022
/* SQL_FETCH_RESUME is not supported by 2.0+ drivers
2023
#define SQL_FETCH_RESUME                7
2024
*/
2025
#define SQL_SCROLL_FORWARD_ONLY         0L    /*-SQL_CURSOR_FORWARD_ONLY */
2026
#define SQL_SCROLL_KEYSET_DRIVEN        (-1L) /*-SQL_CURSOR_KEYSET_DRIVEN */
2027
#define SQL_SCROLL_DYNAMIC              (-2L) /*-SQL_CURSOR_DYNAMIC */
2028
#define SQL_SCROLL_STATIC               (-3L) /*-SQL_CURSOR_STATIC */
2029
2030
/*      Deprecated functions from prior versions of ODBC */
2031
#ifndef RC_INVOKED
2032
2033
SQLRETURN SQL_API SQLSetScrollOptions(    /*      Use SQLSetStmtOptions */
2034
    SQLHSTMT           hstmt,
2035
    SQLUSMALLINT       fConcurrency,
2036
    SQLLEN             crowKeyset,
2037
    SQLUSMALLINT       crowRowset);
2038
2039
/* Tracing section */
2040
2041
#define		TRACE_VERSION	1000		/* Version of trace API */
2042
#if 0 /* HBi */
2043
RETCODE	SQL_API TraceOpenLogFile(LPWSTR,LPWSTR,DWORD);// open a trace log file
2044
RETCODE	SQL_API TraceCloseLogFile();			// Request to close a trace log
2045
VOID	SQL_API TraceReturn(RETCODE,RETCODE);	// Processes trace after FN is called
2046
DWORD	SQL_API TraceVersion();					// Returns trace API version
2047
2048
/* Functions for Visual Studio Analyzer*/
2049
/* to turn on/off tracing or VS events, call TraceVSControl by setting or clearing the following bits  */
2050
#define TRACE_ON			0x00000001L
2051
#define TRACE_VS_EVENT_ON	0x00000002L
2052
2053
RETCODE	SQL_API	TraceVSControl(DWORD);
2054
2055
/* Functions for setting the connection pooling failure detection code */
2056
/* The "TryWait" value is the time (in seconds) that the DM will wait  */
2057
/* between detecting that a connection is dead (using                  */
2058
/* SQL_ATTR_CONNECTION_DEAD) and retrying the connection.  During that */
2059
/* interval, connection requests will get "The server appears to be    */
2060
/* dead" error returns.                                                */
2061
2062
2063
BOOL SQL_API    ODBCSetTryWaitValue(DWORD dwValue);	/* In seconds */
2064
DWORD SQL_API	ODBCGetTryWaitValue();			/* In Milliseconds(!) */
2065
2066
2067
/* the flags in ODBC_VS_ARGS */
2068
#define ODBC_VS_FLAG_UNICODE_ARG	0x00000001L	/* the argument is unicode */
2069
#define	ODBC_VS_FLAG_UNICODE_COR	0x00000002L	/* the correlation is unicode */
2070
#define ODBC_VS_FLAG_RETCODE		0x00000004L	/* RetCode field is set */
2071
#define ODBC_VS_FLAG_STOP		0x00000008L	/* Stop firing visual studio analyzer events */
2072
2073
typedef struct tagODBC_VS_ARGS {
2074
	const GUID	*pguidEvent;	/* the GUID for event */
2075
	DWORD	dwFlags;		/* flags for the call */
2076
	union {
2077
		WCHAR	*wszArg;
2078
		CHAR	*szArg;
2079
	};
2080
	union {
2081
		WCHAR	*wszCorrelation;
2082
		CHAR	*szCorrelation;
2083
	};
2084
	RETCODE	RetCode;
2085
} ODBC_VS_ARGS, *PODBC_VS_ARGS;
2086
VOID	SQL_API	FireVSDebugEvent(PODBC_VS_ARGS);
2087
#endif /* if 0 HBi */
2088
#endif /* RC_INVOKED */
2089
2090
2091
#ifdef __cplusplus
2092
}                                     /* End of extern "C" { */
2093
#endif  /* __cplusplus */
2094
2095
/*
2096
#if defined(WIN32)
2097
include "sqlucode.h"
2098
#endif
2099
*/
2100
2101
#include "sqlucode.h"
2102
2103
#endif /* __SQLEXT */
(-)V75_00_08.orig/MaxDB_ORG/usr/incl/sqltypes.h (+360 lines)
Line 0 Link Here
1
/*********************************************************************
2
** SQLTYPES.H - This file defines the types used in ODBC
3
**
4
** (C) Copyright 1995-1999 By Microsoft Corp.
5
**
6
**		Created 04/10/95 for 2.50 specification
7
**		Updated 12/11/95 for 3.00 specification
8
\if EMIT_LICENCE
9
10
11
    ========== licence begin  GPL
12
    Copyright (C) 2003 SAP AG
13
14
    This program is free software; you can redistribute it and/or
15
    modify it under the terms of the GNU General Public License
16
    as published by the Free Software Foundation; either version 2
17
    of the License, or (at your option) any later version.
18
19
    This program is distributed in the hope that it will be useful,
20
    but WITHOUT ANY WARRANTY; without even the implied warranty of
21
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
22
    GNU General Public License for more details.
23
24
    You should have received a copy of the GNU General Public License
25
    along with this program; if not, write to the Free Software
26
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
27
    ========== licence end
28
29
\endif
30
*********************************************************************/
31
32
/* Adopted for SAP DB */
33
34
#ifndef __SQLTYPES_SAPDB
35
#define __SQLTYPES_SAPDB
36
#define __SQLTYPES          /* prevent include of another sqltypes.h */
37
38
/* if ODBCVER is not defined, assume version 3.51 */
39
#ifndef ODBCVER
40
#define ODBCVER	0x0351
41
#endif  /* ODBCVER */
42
43
#ifdef __cplusplus
44
extern "C" { 			/* Assume C declarations for C++   */
45
#endif  /* __cplusplus */
46
47
/* environment specific definitions */
48
#ifndef EXPORT
49
#define EXPORT
50
#endif
51
52
#ifdef WIN32
53
#define SQL_API  __stdcall
54
#else
55
#define SQL_API
56
#endif
57
58
#ifndef RC_INVOKED
59
60
/* API declaration data types */
61
typedef unsigned char   SQLCHAR;
62
#if (ODBCVER >= 0x0300)
63
    /* typedef signed char     SQLSCHAR; */
64
typedef unsigned char   SQLDATE;
65
typedef unsigned char   SQLDECIMAL;
66
typedef double          SQLDOUBLE;
67
typedef double          SQLFLOAT;
68
#endif
69
70
  /*  PTS 1119281: SQLINTEGER is a 4 bytes integer
71
typedef long            SQLINTEGER;
72
typedef unsigned long   SQLUINTEGER;
73
  */
74
typedef int             SQLINTEGER;
75
typedef unsigned int    SQLUINTEGER;
76
77
#ifdef _WIN64
78
typedef INT64           SQLLEN;
79
typedef UINT64          SQLULEN;
80
typedef UINT64          SQLSETPOSIROW;
81
#elif 2147483647==LONG_MAX
82
#define SQLLEN          SQLINTEGER
83
#define SQLULEN         SQLUINTEGER
84
#define SQLSETPOSIROW   SQLUSMALLINT
85
#else
86
typedef long            SQLLEN;
87
typedef unsigned long   SQLULEN;
88
typedef unsigned long   SQLSETPOSIROW;
89
#endif
90
91
/* For Backward compatibility */
92
/* #ifdef WIN32*/
93
typedef SQLULEN			SQLROWCOUNT;
94
typedef SQLULEN			SQLROWSETSIZE;
95
typedef SQLULEN			SQLTRANSID;
96
typedef SQLLEN			SQLROWOFFSET;
97
/* #endif */
98
99
#if (ODBCVER >= 0x0300)
100
typedef unsigned char   SQLNUMERIC;
101
#endif
102
typedef void *          SQLPOINTER;
103
#if (ODBCVER >= 0x0300)
104
typedef float           SQLREAL;
105
#endif
106
typedef short           SQLSMALLINT;
107
typedef unsigned short  SQLUSMALLINT;
108
#if (ODBCVER >= 0x0300)
109
typedef unsigned char   SQLTIME;
110
typedef unsigned char   SQLTIMESTAMP;
111
typedef unsigned char   SQLVARCHAR;
112
#endif
113
114
/* function return type */
115
typedef SQLSMALLINT     SQLRETURN;
116
117
/* generic data structures */
118
#if (ODBCVER >= 0x0300)
119
typedef void*					SQLHANDLE;
120
typedef SQLHANDLE               SQLHENV;
121
typedef SQLHANDLE               SQLHDBC;
122
typedef SQLHANDLE               SQLHSTMT;
123
typedef SQLHANDLE               SQLHDESC;
124
#else
125
#if defined(WIN32) || defined(_WIN64)
126
typedef void*					SQLHENV;
127
typedef void*					SQLHDBC;
128
typedef void*					SQLHSTMT;
129
#else
130
typedef SQLINTEGER              SQLHENV;
131
typedef SQLINTEGER              SQLHDBC;
132
typedef SQLINTEGER              SQLHSTMT;
133
#endif  /* defined(WIN32) || defined(_WIN64) */
134
#endif /* ODBCVER >= 0x0300 */
135
136
/* SQL portable types for C */
137
typedef unsigned char           UCHAR;
138
typedef signed char             SCHAR;
139
typedef SCHAR                   SQLSCHAR;
140
  /*  PTS 1119281: WORDs have 2 bytes
141
typedef long int                SDWORD;
142
typedef short int               SWORD;
143
typedef unsigned long int       UDWORD;
144
typedef unsigned short int      UWORD;
145
  */
146
typedef  int                SDWORD;
147
typedef short               SWORD;
148
typedef unsigned int        UDWORD;
149
typedef unsigned short      UWORD;
150
    /*#ifndef _WIN64 */
151
    /*typedef UDWORD                  SQLUINTEGER; */
152
    /*#endif */
153
154
typedef signed long             SLONG;
155
typedef signed short            SSHORT;
156
typedef unsigned long           ULONG;
157
typedef unsigned short          USHORT;
158
typedef double                  SDOUBLE;
159
typedef double            		LDOUBLE;
160
typedef float                   SFLOAT;
161
162
typedef void*              		PTR;
163
164
typedef void*              		HENV;
165
typedef void*              		HDBC;
166
typedef void*              		HSTMT;
167
168
typedef signed short            RETCODE;
169
170
#if defined(WIN32) || defined(OS2)
171
typedef HWND                    SQLHWND;
172
#elif defined (UNIX)
173
typedef Widget                  SQLHWND;
174
#else
175
/* placehold for future O/S GUI window handle definition */
176
typedef SQLPOINTER              SQLHWND;
177
#endif
178
179
#ifndef	__SQLDATE
180
#define	__SQLDATE
181
/* transfer types for DATE, TIME, TIMESTAMP */
182
typedef struct tagDATE_STRUCT
183
{
184
        SQLSMALLINT    year;
185
        SQLUSMALLINT   month;
186
        SQLUSMALLINT   day;
187
} DATE_STRUCT;
188
189
#if (ODBCVER >= 0x0300)
190
typedef DATE_STRUCT	SQL_DATE_STRUCT;
191
#endif  /* ODBCVER >= 0x0300 */
192
193
typedef struct tagTIME_STRUCT
194
{
195
        SQLUSMALLINT   hour;
196
        SQLUSMALLINT   minute;
197
        SQLUSMALLINT   second;
198
} TIME_STRUCT;
199
200
#if (ODBCVER >= 0x0300)
201
typedef TIME_STRUCT	SQL_TIME_STRUCT;
202
#endif /* ODBCVER >= 0x0300 */
203
204
typedef struct tagTIMESTAMP_STRUCT
205
{
206
        SQLSMALLINT    year;
207
        SQLUSMALLINT   month;
208
        SQLUSMALLINT   day;
209
        SQLUSMALLINT   hour;
210
        SQLUSMALLINT   minute;
211
        SQLUSMALLINT   second;
212
        SQLUINTEGER    fraction;
213
} TIMESTAMP_STRUCT;
214
215
#if (ODBCVER >= 0x0300)
216
typedef TIMESTAMP_STRUCT	SQL_TIMESTAMP_STRUCT;
217
#endif  /* ODBCVER >= 0x0300 */
218
219
220
/*
221
 * enumerations for DATETIME_INTERVAL_SUBCODE values for interval data types
222
 * these values are from SQL-92
223
 */
224
225
#if (ODBCVER >= 0x0300)
226
typedef enum
227
{
228
	SQL_IS_YEAR						= 1,
229
	SQL_IS_MONTH					= 2,
230
	SQL_IS_DAY						= 3,
231
	SQL_IS_HOUR						= 4,
232
	SQL_IS_MINUTE					= 5,
233
	SQL_IS_SECOND					= 6,
234
	SQL_IS_YEAR_TO_MONTH			= 7,
235
	SQL_IS_DAY_TO_HOUR				= 8,
236
	SQL_IS_DAY_TO_MINUTE			= 9,
237
	SQL_IS_DAY_TO_SECOND			= 10,
238
	SQL_IS_HOUR_TO_MINUTE			= 11,
239
	SQL_IS_HOUR_TO_SECOND			= 12,
240
	SQL_IS_MINUTE_TO_SECOND			= 13
241
} SQLINTERVAL;
242
243
#endif  /* ODBCVER >= 0x0300 */
244
245
#if (ODBCVER >= 0x0300)
246
typedef struct tagSQL_YEAR_MONTH
247
{
248
		SQLUINTEGER		year;
249
		SQLUINTEGER		month;
250
} SQL_YEAR_MONTH_STRUCT;
251
252
typedef struct tagSQL_DAY_SECOND
253
{
254
		SQLUINTEGER		day;
255
		SQLUINTEGER		hour;
256
		SQLUINTEGER		minute;
257
		SQLUINTEGER		second;
258
		SQLUINTEGER		fraction;
259
} SQL_DAY_SECOND_STRUCT;
260
261
typedef struct tagSQL_INTERVAL_STRUCT
262
{
263
	SQLINTERVAL		interval_type;
264
	SQLSMALLINT		interval_sign;
265
	union {
266
		SQL_YEAR_MONTH_STRUCT		year_month;
267
		SQL_DAY_SECOND_STRUCT		day_second;
268
	} intval;
269
270
} SQL_INTERVAL_STRUCT;
271
272
#endif  /* ODBCVER >= 0x0300 */
273
274
#endif	/* __SQLDATE	*/
275
276
/* the ODBC C types for SQL_C_SBIGINT and SQL_C_UBIGINT */
277
#if (ODBCVER >= 0x0300)
278
#if (_MSC_VER >= 900)
279
#define ODBCINT64	__int64
280
#endif
281
282
#if defined(_WIN32) || defined(_WIN64)
283
#else
284
#   if 2147483647==LONG_MAX
285
#      define   ODBCINT64   long long
286
#   else
287
#      define   ODBCINT64   long
288
#   endif
289
#endif /* UNIX(tm) tested on AIX,DEC,LINUX,HP,SNI and SUN ;-) from sapdb_types.h */
290
291
/* If using other compilers, define ODBCINT64 to the
292
	approriate 64 bit integer type */
293
#ifdef ODBCINT64
294
typedef ODBCINT64	SQLBIGINT;
295
typedef unsigned ODBCINT64	SQLUBIGINT;
296
#endif
297
#endif  /* ODBCVER >= 0x0300 */
298
299
/* internal representation of numeric data type */
300
#if (ODBCVER >= 0x0300)
301
#define SQL_MAX_NUMERIC_LEN		16
302
typedef struct tagSQL_NUMERIC_STRUCT
303
{
304
	SQLCHAR		precision;
305
	SQLSCHAR	scale;
306
	SQLCHAR		sign;	/* 1 if positive, 0 if negative */
307
	SQLCHAR		val[SQL_MAX_NUMERIC_LEN];
308
} SQL_NUMERIC_STRUCT;
309
#endif  /* ODBCVER >= 0x0300 */
310
311
#if (ODBCVER >= 0x0350)
312
#ifdef GUID_DEFINED
313
typedef GUID	SQLGUID;
314
#else
315
/* size is 16 */
316
typedef struct  tagSQLGUID
317
{
318
    DWORD Data1;
319
    WORD Data2;
320
    WORD Data3;
321
    BYTE Data4[ 8 ];
322
} SQLGUID;
323
#endif  /* GUID_DEFINED */
324
#endif  /* ODBCVER >= 0x0350 */
325
326
typedef SQLULEN       BOOKMARK;
327
328
/*
329
#ifdef _WCHAR_T_DEFINED
330
typedef wchar_t SQLWCHAR;
331
#else
332
typedef unsigned short SQLWCHAR;
333
#endif
334
*/
335
typedef unsigned short SQLWCHAR;   /* SAP DB ODBC supports only 2 bytes wide charaters (according to tsp81_UCS2Char) */
336
337
#ifdef UNICODE
338
typedef SQLWCHAR        SQLTCHAR;
339
#else
340
typedef SQLCHAR         SQLTCHAR;
341
#endif  /* UNICODE */
342
343
/* special cast macros since WIN64 long has not 64 bits PTS 1109221 */
344
#ifdef _WIN64
345
#define SQLPOINTER_CAST(x)        (SQLPOINTER) (INT64) x
346
#define VALUE_CAST(x)             (INT64) x
347
#else
348
#define SQLPOINTER_CAST(x)        (SQLPOINTER) (long) x
349
#define VALUE_CAST(x)             (long) x
350
#endif
351
352
#endif     /* RC_INVOKED */
353
354
355
#ifdef __cplusplus
356
}                                    /* End of extern "C" { */
357
#endif  /* __cplusplus */
358
359
#endif /* #ifndef __SQLTYPES */
360
(-)V75_00_08.orig/MaxDB_ORG/usr/incl/sqlucode.h (+848 lines)
Line 0 Link Here
1
/*****************************************************************
2
** SQLUCODE.H - This is the the unicode include for ODBC Core functions.
3
**
4
** preconditions:
5
**      #include "windows.h"
6
**		#include "sql.h"
7
**
8
** (C) Copyright 1990 - 1999 By Microsoft Corp.
9
**
10
**		Created 6/20 for 3.00 specification
11
\if EMIT_LICENCE
12
13
14
    ========== licence begin  GPL
15
    Copyright (C) 2003 SAP AG
16
17
    This program is free software; you can redistribute it and/or
18
    modify it under the terms of the GNU General Public License
19
    as published by the Free Software Foundation; either version 2
20
    of the License, or (at your option) any later version.
21
22
    This program is distributed in the hope that it will be useful,
23
    but WITHOUT ANY WARRANTY; without even the implied warranty of
24
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
25
    GNU General Public License for more details.
26
27
    You should have received a copy of the GNU General Public License
28
    along with this program; if not, write to the Free Software
29
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
30
    ========== licence end
31
32
\endif
33
*********************************************************************/
34
35
/* Adopted for SAP DB */
36
37
#ifndef __SQLUCODE_SAPDB
38
#define __SQLUCODE_SAPDB
39
#define __SQLUCODE          /* prevent include of another sqlucode.h */
40
41
42
#ifdef __cplusplus
43
extern "C" { 			/* Assume C declarations for C++   */
44
#endif  /* __cplusplus */
45
46
/*
47
 include "sqlext.h"
48
*/
49
50
#define SQL_WCHAR		 	(-8)
51
#define SQL_WVARCHAR	 	(-9)
52
#define SQL_WLONGVARCHAR 	(-10)
53
#define SQL_C_WCHAR			SQL_WCHAR
54
55
#ifdef UNICODE
56
#define SQL_C_TCHAR		SQL_C_WCHAR
57
#else
58
#define SQL_C_TCHAR		SQL_C_CHAR
59
#endif
60
61
#define SQL_SQLSTATE_SIZEW	10	/* size of SQLSTATE for unicode */
62
63
#ifndef RC_INVOKED
64
65
/* UNICODE versions */
66
67
#ifdef _WIN64
68
SQLRETURN SQL_API SQLColAttributeW(
69
	SQLHSTMT		hstmt,
70
	SQLUSMALLINT	iCol,
71
	SQLUSMALLINT	iField,
72
	SQLPOINTER		pCharAttr,
73
	SQLSMALLINT		cbCharAttrMax,
74
	SQLSMALLINT		*pcbCharAttr,
75
	SQLLEN			*pNumAttr);
76
#else
77
SQLRETURN SQL_API SQLColAttributeW(
78
	SQLHSTMT		hstmt,
79
	SQLUSMALLINT	iCol,
80
	SQLUSMALLINT	iField,
81
	SQLPOINTER		pCharAttr,
82
	SQLSMALLINT		cbCharAttrMax,
83
	SQLSMALLINT		*pcbCharAttr,
84
	SQLPOINTER		pNumAttr);
85
#endif
86
87
88
SQLRETURN SQL_API SQLColAttributesW(
89
    SQLHSTMT           hstmt,
90
    SQLUSMALLINT       icol,
91
    SQLUSMALLINT       fDescType,
92
    SQLPOINTER         rgbDesc,
93
    SQLSMALLINT        cbDescMax,
94
    SQLSMALLINT    *pcbDesc,
95
    SQLLEN         *pfDesc);
96
97
SQLRETURN SQL_API SQLConnectW(
98
    SQLHDBC            hdbc,
99
    SQLWCHAR        *szDSN,
100
    SQLSMALLINT        cbDSN,
101
    SQLWCHAR        *szUID,
102
    SQLSMALLINT        cbUID,
103
    SQLWCHAR        *szAuthStr,
104
    SQLSMALLINT        cbAuthStr);
105
106
107
SQLRETURN SQL_API SQLDescribeColW(
108
    SQLHSTMT           hstmt,
109
    SQLUSMALLINT       icol,
110
    SQLWCHAR        *szColName,
111
    SQLSMALLINT        cbColNameMax,
112
    SQLSMALLINT    *pcbColName,
113
    SQLSMALLINT    *pfSqlType,
114
    SQLULEN        *pcbColDef,
115
    SQLSMALLINT    *pibScale,
116
    SQLSMALLINT    *pfNullable);
117
118
119
SQLRETURN SQL_API SQLErrorW(
120
    SQLHENV            henv,
121
    SQLHDBC            hdbc,
122
    SQLHSTMT           hstmt,
123
    SQLWCHAR        *szSqlState,
124
    SQLINTEGER     *pfNativeError,
125
    SQLWCHAR        *szErrorMsg,
126
    SQLSMALLINT        cbErrorMsgMax,
127
    SQLSMALLINT    *pcbErrorMsg);
128
129
SQLRETURN SQL_API SQLExecDirectW(
130
    SQLHSTMT           hstmt,
131
    SQLWCHAR        *szSqlStr,
132
    SQLINTEGER         cbSqlStr);
133
134
SQLRETURN SQL_API SQLGetConnectAttrW(
135
    SQLHDBC            hdbc,
136
    SQLINTEGER         fAttribute,
137
    SQLPOINTER         rgbValue,
138
    SQLINTEGER         cbValueMax,
139
    SQLINTEGER     *pcbValue);
140
141
SQLRETURN SQL_API SQLGetCursorNameW(
142
    SQLHSTMT           hstmt,
143
    SQLWCHAR        *szCursor,
144
    SQLSMALLINT        cbCursorMax,
145
    SQLSMALLINT    *pcbCursor);
146
147
#if (ODBCVER >= 0x0300)
148
SQLRETURN  SQL_API SQLSetDescFieldW(SQLHDESC DescriptorHandle,
149
           						   SQLSMALLINT RecNumber,
150
								   SQLSMALLINT FieldIdentifier,
151
           						   SQLPOINTER Value,
152
								   SQLINTEGER BufferLength);
153
154
155
156
SQLRETURN SQL_API SQLGetDescFieldW(
157
    SQLHDESC           hdesc,
158
    SQLSMALLINT        iRecord,
159
    SQLSMALLINT        iField,
160
    SQLPOINTER         rgbValue,
161
    SQLINTEGER		   cbValueMax,
162
    SQLINTEGER     *pcbValue);
163
164
SQLRETURN SQL_API SQLGetDescRecW(
165
    SQLHDESC           hdesc,
166
    SQLSMALLINT        iRecord,
167
    SQLWCHAR        *szName,
168
    SQLSMALLINT        cbNameMax,
169
    SQLSMALLINT    *pcbName,
170
    SQLSMALLINT    *pfType,
171
    SQLSMALLINT    *pfSubType,
172
    SQLLEN         *pLength,
173
    SQLSMALLINT    *pPrecision,
174
    SQLSMALLINT    *pScale,
175
    SQLSMALLINT    *pNullable);
176
177
SQLRETURN SQL_API SQLGetDiagFieldW(
178
    SQLSMALLINT        fHandleType,
179
    SQLHANDLE          handle,
180
    SQLSMALLINT        iRecord,
181
    SQLSMALLINT        fDiagField,
182
    SQLPOINTER         rgbDiagInfo,
183
    SQLSMALLINT        cbDiagInfoMax,
184
    SQLSMALLINT    *pcbDiagInfo);
185
186
SQLRETURN SQL_API SQLGetDiagRecW(
187
    SQLSMALLINT        fHandleType,
188
    SQLHANDLE          handle,
189
    SQLSMALLINT        iRecord,
190
    SQLWCHAR        *szSqlState,
191
    SQLINTEGER     *pfNativeError,
192
    SQLWCHAR        *szErrorMsg,
193
    SQLSMALLINT        cbErrorMsgMax,
194
    SQLSMALLINT    *pcbErrorMsg);
195
196
197
#endif
198
199
200
SQLRETURN SQL_API SQLPrepareW(
201
    SQLHSTMT           hstmt,
202
    SQLWCHAR        *szSqlStr,
203
    SQLINTEGER         cbSqlStr);
204
205
SQLRETURN SQL_API SQLSetConnectAttrW(
206
    SQLHDBC            hdbc,
207
    SQLINTEGER         fAttribute,
208
    SQLPOINTER         rgbValue,
209
    SQLINTEGER         cbValue);
210
211
SQLRETURN SQL_API SQLSetCursorNameW(
212
    SQLHSTMT           hstmt,
213
    SQLWCHAR        *szCursor,
214
    SQLSMALLINT        cbCursor);
215
216
217
218
219
220
221
222
SQLRETURN SQL_API SQLColumnsW(
223
    SQLHSTMT           hstmt,
224
    SQLWCHAR        *szCatalogName,
225
    SQLSMALLINT        cbCatalogName,
226
    SQLWCHAR        *szSchemaName,
227
    SQLSMALLINT        cbSchemaName,
228
    SQLWCHAR        *szTableName,
229
    SQLSMALLINT        cbTableName,
230
    SQLWCHAR        *szColumnName,
231
    SQLSMALLINT        cbColumnName);
232
233
SQLRETURN SQL_API SQLGetConnectOptionW(
234
    SQLHDBC            hdbc,
235
    SQLUSMALLINT       fOption,
236
    SQLPOINTER         pvParam);
237
238
239
240
SQLRETURN SQL_API SQLGetInfoW(
241
    SQLHDBC            hdbc,
242
    SQLUSMALLINT       fInfoType,
243
    SQLPOINTER         rgbInfoValue,
244
    SQLSMALLINT        cbInfoValueMax,
245
    SQLSMALLINT    *pcbInfoValue);
246
247
SQLRETURN SQL_API	SQLGetTypeInfoW(
248
	SQLHSTMT			StatementHandle,
249
	SQLSMALLINT			DataTyoe);
250
251
252
SQLRETURN SQL_API SQLSetConnectOptionW(
253
    SQLHDBC            hdbc,
254
    SQLUSMALLINT       fOption,
255
    SQLULEN            vParam);
256
257
258
SQLRETURN SQL_API SQLSpecialColumnsW(
259
    SQLHSTMT           hstmt,
260
    SQLUSMALLINT       fColType,
261
    SQLWCHAR        *szCatalogName,
262
    SQLSMALLINT        cbCatalogName,
263
    SQLWCHAR        *szSchemaName,
264
    SQLSMALLINT        cbSchemaName,
265
    SQLWCHAR        *szTableName,
266
    SQLSMALLINT        cbTableName,
267
    SQLUSMALLINT       fScope,
268
    SQLUSMALLINT       fNullable);
269
270
SQLRETURN SQL_API SQLStatisticsW(
271
    SQLHSTMT           hstmt,
272
    SQLWCHAR        *szCatalogName,
273
    SQLSMALLINT        cbCatalogName,
274
    SQLWCHAR        *szSchemaName,
275
    SQLSMALLINT        cbSchemaName,
276
    SQLWCHAR        *szTableName,
277
    SQLSMALLINT        cbTableName,
278
    SQLUSMALLINT       fUnique,
279
    SQLUSMALLINT       fAccuracy);
280
281
SQLRETURN SQL_API SQLTablesW(
282
    SQLHSTMT           hstmt,
283
    SQLWCHAR        *szCatalogName,
284
    SQLSMALLINT        cbCatalogName,
285
    SQLWCHAR        *szSchemaName,
286
    SQLSMALLINT        cbSchemaName,
287
    SQLWCHAR        *szTableName,
288
    SQLSMALLINT        cbTableName,
289
    SQLWCHAR        *szTableType,
290
    SQLSMALLINT        cbTableType);
291
292
293
294
SQLRETURN SQL_API SQLDataSourcesW(
295
    SQLHENV            henv,
296
    SQLUSMALLINT       fDirection,
297
    SQLWCHAR        *szDSN,
298
    SQLSMALLINT        cbDSNMax,
299
    SQLSMALLINT    *pcbDSN,
300
    SQLWCHAR        *szDescription,
301
    SQLSMALLINT        cbDescriptionMax,
302
    SQLSMALLINT    *pcbDescription);
303
304
305
306
307
SQLRETURN SQL_API SQLDriverConnectW(
308
    SQLHDBC            hdbc,
309
    SQLHWND            hwnd,
310
    SQLWCHAR        *szConnStrIn,
311
    SQLSMALLINT        cbConnStrIn,
312
    SQLWCHAR        *szConnStrOut,
313
    SQLSMALLINT        cbConnStrOutMax,
314
    SQLSMALLINT    *pcbConnStrOut,
315
    SQLUSMALLINT       fDriverCompletion);
316
317
318
SQLRETURN SQL_API SQLBrowseConnectW(
319
    SQLHDBC            hdbc,
320
    SQLWCHAR        *szConnStrIn,
321
    SQLSMALLINT        cbConnStrIn,
322
    SQLWCHAR        *szConnStrOut,
323
    SQLSMALLINT        cbConnStrOutMax,
324
    SQLSMALLINT    *pcbConnStrOut);
325
326
SQLRETURN SQL_API SQLColumnPrivilegesW(
327
    SQLHSTMT           hstmt,
328
    SQLWCHAR        *szCatalogName,
329
    SQLSMALLINT        cbCatalogName,
330
    SQLWCHAR        *szSchemaName,
331
    SQLSMALLINT        cbSchemaName,
332
    SQLWCHAR        *szTableName,
333
    SQLSMALLINT        cbTableName,
334
    SQLWCHAR        *szColumnName,
335
    SQLSMALLINT        cbColumnName);
336
337
SQLRETURN SQL_API SQLGetStmtAttrW(
338
    SQLHSTMT           hstmt,
339
    SQLINTEGER         fAttribute,
340
    SQLPOINTER         rgbValue,
341
    SQLINTEGER         cbValueMax,
342
    SQLINTEGER     *pcbValue);
343
344
SQLRETURN SQL_API SQLSetStmtAttrW(
345
    SQLHSTMT           hstmt,
346
    SQLINTEGER         fAttribute,
347
    SQLPOINTER         rgbValue,
348
    SQLINTEGER         cbValueMax);
349
350
SQLRETURN SQL_API SQLForeignKeysW(
351
    SQLHSTMT           hstmt,
352
    SQLWCHAR        *szPkCatalogName,
353
    SQLSMALLINT        cbPkCatalogName,
354
    SQLWCHAR        *szPkSchemaName,
355
    SQLSMALLINT        cbPkSchemaName,
356
    SQLWCHAR        *szPkTableName,
357
    SQLSMALLINT        cbPkTableName,
358
    SQLWCHAR        *szFkCatalogName,
359
    SQLSMALLINT        cbFkCatalogName,
360
    SQLWCHAR        *szFkSchemaName,
361
    SQLSMALLINT        cbFkSchemaName,
362
    SQLWCHAR        *szFkTableName,
363
    SQLSMALLINT        cbFkTableName);
364
365
366
SQLRETURN SQL_API SQLNativeSqlW(
367
    SQLHDBC            hdbc,
368
    SQLWCHAR        *szSqlStrIn,
369
    SQLINTEGER         cbSqlStrIn,
370
    SQLWCHAR        *szSqlStr,
371
    SQLINTEGER         cbSqlStrMax,
372
    SQLINTEGER     *pcbSqlStr);
373
374
375
SQLRETURN SQL_API SQLPrimaryKeysW(
376
    SQLHSTMT           hstmt,
377
    SQLWCHAR        *szCatalogName,
378
    SQLSMALLINT        cbCatalogName,
379
    SQLWCHAR        *szSchemaName,
380
    SQLSMALLINT        cbSchemaName,
381
    SQLWCHAR        *szTableName,
382
    SQLSMALLINT        cbTableName);
383
384
SQLRETURN SQL_API SQLProcedureColumnsW(
385
    SQLHSTMT           hstmt,
386
    SQLWCHAR        *szCatalogName,
387
    SQLSMALLINT        cbCatalogName,
388
    SQLWCHAR        *szSchemaName,
389
    SQLSMALLINT        cbSchemaName,
390
    SQLWCHAR        *szProcName,
391
    SQLSMALLINT        cbProcName,
392
    SQLWCHAR        *szColumnName,
393
    SQLSMALLINT        cbColumnName);
394
395
SQLRETURN SQL_API SQLProceduresW(
396
    SQLHSTMT           hstmt,
397
    SQLWCHAR        *szCatalogName,
398
    SQLSMALLINT        cbCatalogName,
399
    SQLWCHAR        *szSchemaName,
400
    SQLSMALLINT        cbSchemaName,
401
    SQLWCHAR        *szProcName,
402
    SQLSMALLINT        cbProcName);
403
404
405
SQLRETURN SQL_API SQLTablePrivilegesW(
406
    SQLHSTMT           hstmt,
407
    SQLWCHAR        *szCatalogName,
408
    SQLSMALLINT        cbCatalogName,
409
    SQLWCHAR        *szSchemaName,
410
    SQLSMALLINT        cbSchemaName,
411
    SQLWCHAR        *szTableName,
412
    SQLSMALLINT        cbTableName);
413
414
SQLRETURN SQL_API SQLDriversW(
415
    SQLHENV            henv,
416
    SQLUSMALLINT       fDirection,
417
    SQLWCHAR        *szDriverDesc,
418
    SQLSMALLINT        cbDriverDescMax,
419
    SQLSMALLINT    *pcbDriverDesc,
420
    SQLWCHAR        *szDriverAttributes,
421
    SQLSMALLINT        cbDrvrAttrMax,
422
    SQLSMALLINT    *pcbDrvrAttr);
423
424
425
/* ANSI versions */
426
#ifdef _WIN64
427
SQLRETURN SQL_API SQLColAttributeA(
428
	SQLHSTMT		hstmt,
429
	SQLSMALLINT		iCol,
430
	SQLSMALLINT		iField,
431
	SQLPOINTER		pCharAttr,
432
	SQLSMALLINT		cbCharAttrMax,
433
	SQLSMALLINT		*pcbCharAttr,
434
	SQLLEN			*pNumAttr);
435
#else
436
SQLRETURN SQL_API SQLColAttributeA(
437
	SQLHSTMT		hstmt,
438
	SQLSMALLINT		iCol,
439
	SQLSMALLINT		iField,
440
	SQLPOINTER		pCharAttr,
441
	SQLSMALLINT		cbCharAttrMax,
442
	SQLSMALLINT		*pcbCharAttr,
443
	SQLPOINTER		pNumAttr);
444
#endif
445
#ifdef _WIN64
446
#else
447
SQLRETURN SQL_API SQLColAttributesA(
448
    SQLHSTMT           hstmt,
449
    SQLUSMALLINT       icol,
450
    SQLUSMALLINT       fDescType,
451
    SQLPOINTER         rgbDesc,
452
    SQLSMALLINT        cbDescMax,
453
    SQLSMALLINT    *pcbDesc,
454
    SQLINTEGER     *pfDesc);
455
#endif
456
SQLRETURN SQL_API SQLConnectA(
457
    SQLHDBC            hdbc,
458
    SQLCHAR         *szDSN,
459
    SQLSMALLINT        cbDSN,
460
    SQLCHAR         *szUID,
461
    SQLSMALLINT        cbUID,
462
    SQLCHAR         *szAuthStr,
463
    SQLSMALLINT        cbAuthStr);
464
465
466
SQLRETURN SQL_API SQLDescribeColA(
467
    SQLHSTMT           hstmt,
468
    SQLUSMALLINT       icol,
469
    SQLCHAR         *szColName,
470
    SQLSMALLINT        cbColNameMax,
471
    SQLSMALLINT    *pcbColName,
472
    SQLSMALLINT    *pfSqlType,
473
    SQLUINTEGER    *pcbColDef,
474
    SQLSMALLINT    *pibScale,
475
    SQLSMALLINT    *pfNullable);
476
477
478
SQLRETURN SQL_API SQLErrorA(
479
    SQLHENV            henv,
480
    SQLHDBC            hdbc,
481
    SQLHSTMT           hstmt,
482
    SQLCHAR        *szSqlState,
483
    SQLINTEGER     *pfNativeError,
484
    SQLCHAR        *szErrorMsg,
485
    SQLSMALLINT        cbErrorMsgMax,
486
    SQLSMALLINT    *pcbErrorMsg);
487
488
SQLRETURN SQL_API SQLExecDirectA(
489
    SQLHSTMT           hstmt,
490
    SQLCHAR           *szSqlStr,
491
    SQLINTEGER         cbSqlStr);
492
493
SQLRETURN SQL_API SQLGetConnectAttrA(
494
    SQLHDBC            hdbc,
495
    SQLINTEGER         fAttribute,
496
    SQLPOINTER         rgbValue,
497
    SQLINTEGER         cbValueMax,
498
    SQLINTEGER     *pcbValue);
499
500
SQLRETURN SQL_API SQLGetCursorNameA(
501
    SQLHSTMT           hstmt,
502
    SQLCHAR        	*szCursor,
503
    SQLSMALLINT        cbCursorMax,
504
    SQLSMALLINT    *pcbCursor);
505
506
#if (ODBCVER >= 0x0300)
507
SQLRETURN SQL_API SQLGetDescFieldA(
508
    SQLHDESC           hdesc,
509
    SQLSMALLINT        iRecord,
510
    SQLSMALLINT        iField,
511
    SQLPOINTER         rgbValue,
512
    SQLINTEGER		   cbValueMax,
513
    SQLINTEGER     *pcbValue);
514
515
SQLRETURN SQL_API SQLGetDescRecA(
516
    SQLHDESC           hdesc,
517
    SQLSMALLINT        iRecord,
518
    SQLCHAR        *szName,
519
    SQLSMALLINT        cbNameMax,
520
    SQLSMALLINT    *pcbName,
521
    SQLSMALLINT    *pfType,
522
    SQLSMALLINT    *pfSubType,
523
    SQLINTEGER     *pLength,
524
    SQLSMALLINT    *pPrecision,
525
    SQLSMALLINT    *pScale,
526
    SQLSMALLINT    *pNullable);
527
528
SQLRETURN SQL_API SQLGetDiagFieldA(
529
    SQLSMALLINT        fHandleType,
530
    SQLHANDLE          handle,
531
    SQLSMALLINT        iRecord,
532
    SQLSMALLINT        fDiagField,
533
    SQLPOINTER         rgbDiagInfo,
534
    SQLSMALLINT        cbDiagInfoMax,
535
    SQLSMALLINT    *pcbDiagInfo);
536
537
SQLRETURN SQL_API SQLGetDiagRecA(
538
    SQLSMALLINT        fHandleType,
539
    SQLHANDLE          handle,
540
    SQLSMALLINT        iRecord,
541
    SQLCHAR        *szSqlState,
542
    SQLINTEGER     *pfNativeError,
543
    SQLCHAR        *szErrorMsg,
544
    SQLSMALLINT        cbErrorMsgMax,
545
    SQLSMALLINT    *pcbErrorMsg);
546
547
548
SQLRETURN SQL_API SQLGetStmtAttrA(
549
    SQLHSTMT           hstmt,
550
    SQLINTEGER         fAttribute,
551
    SQLPOINTER         rgbValue,
552
    SQLINTEGER         cbValueMax,
553
    SQLINTEGER     *pcbValue);
554
555
#endif
556
557
SQLRETURN SQL_API	SQLGetTypeInfoA(
558
	SQLHSTMT			StatementHandle,
559
	SQLSMALLINT			DataTyoe);
560
561
SQLRETURN SQL_API SQLPrepareA(
562
    SQLHSTMT           hstmt,
563
    SQLCHAR        	*szSqlStr,
564
    SQLINTEGER         cbSqlStr);
565
566
SQLRETURN SQL_API SQLSetConnectAttrA(
567
    SQLHDBC            hdbc,
568
    SQLINTEGER         fAttribute,
569
    SQLPOINTER         rgbValue,
570
    SQLINTEGER         cbValue);
571
572
SQLRETURN SQL_API SQLSetCursorNameA(
573
    SQLHSTMT           hstmt,
574
    SQLCHAR           *szCursor,
575
    SQLSMALLINT        cbCursor);
576
577
578
579
580
581
582
583
SQLRETURN SQL_API SQLColumnsA(
584
    SQLHSTMT           hstmt,
585
    SQLCHAR        	*szCatalogName,
586
    SQLSMALLINT        cbCatalogName,
587
    SQLCHAR        	*szSchemaName,
588
    SQLSMALLINT        cbSchemaName,
589
    SQLCHAR        	*szTableName,
590
    SQLSMALLINT        cbTableName,
591
    SQLCHAR        	*szColumnName,
592
    SQLSMALLINT        cbColumnName);
593
594
SQLRETURN SQL_API SQLGetConnectOptionA(
595
    SQLHDBC            hdbc,
596
    SQLUSMALLINT       fOption,
597
    SQLPOINTER         pvParam);
598
599
600
601
SQLRETURN SQL_API SQLGetInfoA(
602
    SQLHDBC            hdbc,
603
    SQLUSMALLINT       fInfoType,
604
    SQLPOINTER         rgbInfoValue,
605
    SQLSMALLINT        cbInfoValueMax,
606
    SQLSMALLINT    *pcbInfoValue);
607
608
SQLRETURN SQL_API SQLGetStmtOptionA(
609
    SQLHSTMT           hstmt,
610
    SQLUSMALLINT       fOption,
611
    SQLPOINTER         pvParam);
612
613
SQLRETURN SQL_API SQLSetConnectOptionA(
614
    SQLHDBC            hdbc,
615
    SQLUSMALLINT       fOption,
616
    SQLULEN            vParam);
617
618
SQLRETURN SQL_API SQLSetStmtOptionA(
619
    SQLHSTMT           hstmt,
620
    SQLUSMALLINT       fOption,
621
    SQLULEN            vParam);
622
623
SQLRETURN SQL_API SQLSpecialColumnsA(
624
    SQLHSTMT           hstmt,
625
    SQLUSMALLINT       fColType,
626
    SQLCHAR        	*szCatalogName,
627
    SQLSMALLINT        cbCatalogName,
628
    SQLCHAR        	*szSchemaName,
629
    SQLSMALLINT        cbSchemaName,
630
    SQLCHAR        	*szTableName,
631
    SQLSMALLINT        cbTableName,
632
    SQLUSMALLINT       fScope,
633
    SQLUSMALLINT       fNullable);
634
635
SQLRETURN SQL_API SQLStatisticsA(
636
    SQLHSTMT           hstmt,
637
638
    SQLCHAR        *szCatalogName,
639
    SQLSMALLINT        cbCatalogName,
640
    SQLCHAR        *szSchemaName,
641
    SQLSMALLINT        cbSchemaName,
642
    SQLCHAR        *szTableName,
643
    SQLSMALLINT        cbTableName,
644
    SQLUSMALLINT       fUnique,
645
    SQLUSMALLINT       fAccuracy);
646
647
SQLRETURN SQL_API SQLTablesA(
648
    SQLHSTMT           hstmt,
649
650
    SQLCHAR        *szCatalogName,
651
    SQLSMALLINT        cbCatalogName,
652
    SQLCHAR        *szSchemaName,
653
    SQLSMALLINT        cbSchemaName,
654
    SQLCHAR        *szTableName,
655
    SQLSMALLINT        cbTableName,
656
    SQLCHAR        *szTableType,
657
658
    SQLSMALLINT        cbTableType);
659
660
661
662
SQLRETURN SQL_API SQLDataSourcesA(
663
    SQLHENV            henv,
664
    SQLUSMALLINT       fDirection,
665
    SQLCHAR        *szDSN,
666
    SQLSMALLINT        cbDSNMax,
667
    SQLSMALLINT    *pcbDSN,
668
    SQLCHAR        *szDescription,
669
    SQLSMALLINT        cbDescriptionMax,
670
    SQLSMALLINT    *pcbDescription);
671
672
673
674
675
SQLRETURN SQL_API SQLDriverConnectA(
676
    SQLHDBC            hdbc,
677
    SQLHWND            hwnd,
678
    SQLCHAR        *szConnStrIn,
679
    SQLSMALLINT        cbConnStrIn,
680
    SQLCHAR        *szConnStrOut,
681
    SQLSMALLINT        cbConnStrOutMax,
682
    SQLSMALLINT    *pcbConnStrOut,
683
    SQLUSMALLINT       fDriverCompletion);
684
685
686
SQLRETURN SQL_API SQLBrowseConnectA(
687
    SQLHDBC            hdbc,
688
    SQLCHAR        *szConnStrIn,
689
    SQLSMALLINT        cbConnStrIn,
690
    SQLCHAR        *szConnStrOut,
691
    SQLSMALLINT        cbConnStrOutMax,
692
    SQLSMALLINT    *pcbConnStrOut);
693
694
SQLRETURN SQL_API SQLColumnPrivilegesA(
695
    SQLHSTMT           hstmt,
696
    SQLCHAR        *szCatalogName,
697
    SQLSMALLINT        cbCatalogName,
698
    SQLCHAR        *szSchemaName,
699
    SQLSMALLINT        cbSchemaName,
700
    SQLCHAR        *szTableName,
701
    SQLSMALLINT        cbTableName,
702
    SQLCHAR        *szColumnName,
703
    SQLSMALLINT        cbColumnName);
704
705
SQLRETURN SQL_API SQLDescribeParamA(
706
    SQLHSTMT           hstmt,
707
    SQLUSMALLINT       ipar,
708
    SQLSMALLINT    *pfSqlType,
709
    SQLUINTEGER    *pcbParamDef,
710
    SQLSMALLINT    *pibScale,
711
    SQLSMALLINT    *pfNullable);
712
713
714
SQLRETURN SQL_API SQLForeignKeysA(
715
    SQLHSTMT           hstmt,
716
    SQLCHAR        *szPkCatalogName,
717
    SQLSMALLINT        cbPkCatalogName,
718
    SQLCHAR        *szPkSchemaName,
719
    SQLSMALLINT        cbPkSchemaName,
720
    SQLCHAR        *szPkTableName,
721
    SQLSMALLINT        cbPkTableName,
722
    SQLCHAR        *szFkCatalogName,
723
    SQLSMALLINT        cbFkCatalogName,
724
    SQLCHAR        *szFkSchemaName,
725
    SQLSMALLINT        cbFkSchemaName,
726
    SQLCHAR        *szFkTableName,
727
    SQLSMALLINT        cbFkTableName);
728
729
730
SQLRETURN SQL_API SQLNativeSqlA(
731
    SQLHDBC            hdbc,
732
    SQLCHAR        *szSqlStrIn,
733
    SQLINTEGER         cbSqlStrIn,
734
    SQLCHAR        *szSqlStr,
735
    SQLINTEGER         cbSqlStrMax,
736
    SQLINTEGER     *pcbSqlStr);
737
738
739
SQLRETURN SQL_API SQLPrimaryKeysA(
740
    SQLHSTMT           hstmt,
741
    SQLCHAR        *szCatalogName,
742
    SQLSMALLINT        cbCatalogName,
743
    SQLCHAR        *szSchemaName,
744
    SQLSMALLINT        cbSchemaName,
745
    SQLCHAR        *szTableName,
746
    SQLSMALLINT        cbTableName);
747
748
SQLRETURN SQL_API SQLProcedureColumnsA(
749
    SQLHSTMT           hstmt,
750
    SQLCHAR        *szCatalogName,
751
    SQLSMALLINT        cbCatalogName,
752
    SQLCHAR        *szSchemaName,
753
    SQLSMALLINT        cbSchemaName,
754
    SQLCHAR        *szProcName,
755
    SQLSMALLINT        cbProcName,
756
    SQLCHAR        *szColumnName,
757
    SQLSMALLINT        cbColumnName);
758
759
SQLRETURN SQL_API SQLProceduresA(
760
    SQLHSTMT           hstmt,
761
    SQLCHAR        *szCatalogName,
762
    SQLSMALLINT        cbCatalogName,
763
    SQLCHAR        *szSchemaName,
764
    SQLSMALLINT        cbSchemaName,
765
    SQLCHAR        *szProcName,
766
    SQLSMALLINT        cbProcName);
767
768
769
SQLRETURN SQL_API SQLTablePrivilegesA(
770
    SQLHSTMT           hstmt,
771
    SQLCHAR        *szCatalogName,
772
    SQLSMALLINT        cbCatalogName,
773
    SQLCHAR        *szSchemaName,
774
    SQLSMALLINT        cbSchemaName,
775
    SQLCHAR        *szTableName,
776
    SQLSMALLINT        cbTableName);
777
778
SQLRETURN SQL_API SQLDriversA(
779
    SQLHENV            henv,
780
    SQLUSMALLINT       fDirection,
781
    SQLCHAR        *szDriverDesc,
782
    SQLSMALLINT        cbDriverDescMax,
783
    SQLSMALLINT    *pcbDriverDesc,
784
    SQLCHAR        *szDriverAttributes,
785
    SQLSMALLINT        cbDrvrAttrMax,
786
    SQLSMALLINT    *pcbDrvrAttr);
787
788
789
790
791
/*
792
//---------------------------------------------
793
// Mapping macros for Unicode
794
//---------------------------------------------
795
*/
796
797
#ifndef	SQL_NOUNICODEMAP	/* define this to disable the mapping */
798
#ifdef 	UNICODE
799
800
#define	SQLColAttribute		SQLColAttributeW
801
#define	SQLColAttributes	SQLColAttributesW
802
#define	SQLConnect			SQLConnectW
803
#define	SQLDescribeCol		SQLDescribeColW
804
#define	SQLError			SQLErrorW
805
#define	SQLExecDirect		SQLExecDirectW
806
#define	SQLGetConnectAttr	SQLGetConnectAttrW
807
#define	SQLGetCursorName	SQLGetCursorNameW
808
#define	SQLGetDescField		SQLGetDescFieldW
809
#define	SQLGetDescRec		SQLGetDescRecW
810
#define	SQLGetDiagField		SQLGetDiagFieldW
811
#define	SQLGetDiagRec		SQLGetDiagRecW
812
#define	SQLPrepare			SQLPrepareW
813
#define	SQLSetConnectAttr	SQLSetConnectAttrW
814
#define	SQLSetCursorName	SQLSetCursorNameW
815
#define	SQLSetDescField		SQLSetDescFieldW
816
#define SQLSetStmtAttr		SQLSetStmtAttrW
817
#define SQLGetStmtAttr		SQLGetStmtAttrW
818
#define	SQLColumns			SQLColumnsW
819
#define	SQLGetConnectOption	SQLGetConnectOptionW
820
#define	SQLGetInfo			SQLGetInfoW
821
#define SQLGetTypeInfo		SQLGetTypeInfoW
822
#define	SQLSetConnectOption	SQLSetConnectOptionW
823
#define	SQLSpecialColumns	SQLSpecialColumnsW
824
#define	SQLStatistics		SQLStatisticsW
825
#define	SQLTables			SQLTablesW
826
#define	SQLDataSources		SQLDataSourcesW
827
#define	SQLDriverConnect	SQLDriverConnectW
828
#define	SQLBrowseConnect	SQLBrowseConnectW
829
#define	SQLColumnPrivileges	SQLColumnPrivilegesW
830
#define	SQLForeignKeys		SQLForeignKeysW
831
#define	SQLNativeSql		SQLNativeSqlW
832
#define	SQLPrimaryKeys		SQLPrimaryKeysW
833
#define	SQLProcedureColumns	SQLProcedureColumnsW
834
#define	SQLProcedures		SQLProceduresW
835
#define	SQLTablePrivileges	SQLTablePrivilegesW
836
#define	SQLDrivers			SQLDriversW
837
838
#endif	/* UNICODE */
839
#endif	/* SQL_NOUNICODEMAP	*/
840
841
#endif /* RC_INVOKED */
842
843
844
#ifdef __cplusplus
845
}                                    /* End of extern "C" { */
846
#endif  /* __cplusplus */
847
848
#endif  /* #ifndef __SQLUCODE */

Return to bug 42465