1251876Speter/* Licensed to the Apache Software Foundation (ASF) under one or more 2251876Speter * contributor license agreements. See the NOTICE file distributed with 3251876Speter * this work for additional information regarding copyright ownership. 4251876Speter * The ASF licenses this file to You under the Apache License, Version 2.0 5251876Speter * (the "License"); you may not use this file except in compliance with 6251876Speter * the License. You may obtain a copy of the License at 7251876Speter * 8251876Speter * http://www.apache.org/licenses/LICENSE-2.0 9251876Speter * 10251876Speter * Unless required by applicable law or agreed to in writing, software 11251876Speter * distributed under the License is distributed on an "AS IS" BASIS, 12251876Speter * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13251876Speter * See the License for the specific language governing permissions and 14251876Speter * limitations under the License. 15251876Speter */ 16251876Speter 17251876Speter 18251876Speter/* ONLY USED FOR ODBC Version 2 -DODBCV2 19251876Speter* 20251876Speter* Re-define everything to work (more-or-less) in an ODBC V2 environment 21251876Speter* Random access to retrieved rows is not supported - i.e. calls to apr_dbd_select() cannot 22251876Speter* have a 'random' argument of 1. apr_dbd_get_row() must always pass rownum as 0 (get next row) 23251876Speter* 24251876Speter*/ 25251876Speter 26251876Speter#define SQLHANDLE SQLHENV /* Presumes that ENV, DBC, and STMT handles are all the same datatype */ 27251876Speter#define SQL_NULL_HANDLE 0 28251876Speter#define SQL_HANDLE_STMT 1 29251876Speter#define SQL_HANDLE_DBC 2 30251876Speter#define SQL_HANDLE_ENV 3 31251876Speter#define SQL_NO_DATA SQL_NO_DATA_FOUND 32251876Speter 33251876Speter#ifndef SQL_SUCCEEDED 34251876Speter#define SQL_SUCCEEDED(rc) (((rc)&(~1))==0) 35251876Speter#endif 36251876Speter 37251876Speter#undef SQLSetEnvAttr 38251876Speter#define SQLSetEnvAttr(henv, Attribute, Value, StringLength) (0) 39251876Speter 40251876Speter#undef SQLAllocHandle 41251876Speter#define SQLAllocHandle(type, parent, hndl) \ 42251876Speter( (type == SQL_HANDLE_STMT) ? SQLAllocStmt(parent, hndl) \ 43251876Speter : (type == SQL_HANDLE_ENV) ? SQLAllocEnv(hndl) \ 44251876Speter : SQLAllocConnect(parent, hndl) \ 45251876Speter) 46251876Speter 47251876Speter#undef SQLFreeHandle 48251876Speter#define SQLFreeHandle(type, hndl) \ 49251876Speter( (type == SQL_HANDLE_STMT) ? SQLFreeStmt(hndl, SQL_DROP) \ 50251876Speter : (type == SQL_HANDLE_ENV) ? SQLFreeEnv(hndl) \ 51251876Speter : SQLFreeConnect(hndl) \ 52251876Speter) 53251876Speter 54251876Speter#undef SQLGetDiagRec 55251876Speter#define SQLGetDiagRec(type, h, i, state, native, buffer, bufsize, reslen) \ 56251876Speter SQLError( (type == SQL_HANDLE_ENV) ? h : NULL, \ 57251876Speter (type == SQL_HANDLE_DBC) ? h : NULL, \ 58251876Speter (type == SQL_HANDLE_STMT) ? h : NULL, \ 59251876Speter state, native, buffer, bufsize, reslen) 60251876Speter 61251876Speter#undef SQLCloseCursor 62251876Speter#define SQLCloseCursor(stmt) SQLFreeStmt(stmt, SQL_CLOSE) 63251876Speter 64251876Speter#undef SQLGetConnectAttr 65251876Speter#define SQLGetConnectAttr(hdbc, fOption, ValuePtr, BufferLength, NULL) \ 66251876Speter SQLGetConnectOption(hdbc, fOption, ValuePtr) 67251876Speter 68251876Speter#undef SQLSetConnectAttr 69251876Speter#define SQLSetConnectAttr(hdbc, fOption, ValuePtr, BufferLength) \ 70251876Speter SQLSetConnectOption(hdbc, fOption, (SQLUINTEGER) ValuePtr) 71251876Speter 72251876Speter#undef SQLSetStmtAttr 73251876Speter#define SQLSetStmtAttr(hstmt, fOption, ValuePtr, BufferLength) (0); return APR_ENOTIMPL; 74251876Speter 75251876Speter#undef SQLEndTran 76251876Speter#define SQLEndTran(hType, hdbc,type) SQLTransact(henv, hdbc, type) 77251876Speter 78251876Speter#undef SQLFetchScroll 79251876Speter#define SQLFetchScroll(stmt, orient, rownum) (0); return APR_ENOTIMPL; 80251876Speter 81251876Speter#define SQL_DESC_TYPE SQL_COLUMN_TYPE 82251876Speter#define SQL_DESC_CONCISE_TYPE SQL_COLUMN_TYPE 83251876Speter#define SQL_DESC_DISPLAY_SIZE SQL_COLUMN_DISPLAY_SIZE 84251876Speter#define SQL_DESC_OCTET_LENGTH SQL_COLUMN_LENGTH 85251876Speter#define SQL_DESC_UNSIGNED SQL_COLUMN_UNSIGNED 86251876Speter 87251876Speter#undef SQLColAttribute 88251876Speter#define SQLColAttribute(s, c, f, a, l, m, n) SQLColAttributes(s, c, f, a, l, m, n) 89251876Speter 90251876Speter#define SQL_ATTR_ACCESS_MODE SQL_ACCESS_MODE 91251876Speter#define SQL_ATTR_AUTOCOMMIT SQL_AUTOCOMMIT 92251876Speter#define SQL_ATTR_CONNECTION_TIMEOUT 113 93251876Speter#define SQL_ATTR_CURRENT_CATALOG SQL_CURRENT_QUALIFIER 94251876Speter#define SQL_ATTR_DISCONNECT_BEHAVIOR 114 95251876Speter#define SQL_ATTR_ENLIST_IN_DTC 1207 96251876Speter#define SQL_ATTR_ENLIST_IN_XA 1208 97251876Speter 98251876Speter#define SQL_ATTR_CONNECTION_DEAD 1209 99251876Speter#define SQL_CD_TRUE 1L /* Connection is closed/dead */ 100251876Speter#define SQL_CD_FALSE 0L /* Connection is open/available */ 101251876Speter 102251876Speter#define SQL_ATTR_LOGIN_TIMEOUT SQL_LOGIN_TIMEOUT 103251876Speter#define SQL_ATTR_ODBC_CURSORS SQL_ODBC_CURSORS 104251876Speter#define SQL_ATTR_PACKET_SIZE SQL_PACKET_SIZE 105251876Speter#define SQL_ATTR_QUIET_MODE SQL_QUIET_MODE 106251876Speter#define SQL_ATTR_TRACE SQL_OPT_TRACE 107251876Speter#define SQL_ATTR_TRACEFILE SQL_OPT_TRACEFILE 108251876Speter#define SQL_ATTR_TRANSLATE_LIB SQL_TRANSLATE_DLL 109251876Speter#define SQL_ATTR_TRANSLATE_OPTION SQL_TRANSLATE_OPTION 110251876Speter#define SQL_ATTR_TXN_ISOLATION SQL_TXN_ISOLATION 111251876Speter 112251876Speter#define SQL_ATTR_CURSOR_SCROLLABLE -1 113251876Speter 114251876Speter#define SQL_C_SBIGINT (SQL_BIGINT+SQL_SIGNED_OFFSET) /* SIGNED BIGINT */ 115251876Speter#define SQL_C_UBIGINT (SQL_BIGINT+SQL_UNSIGNED_OFFSET) /* UNSIGNED BIGINT */ 116251876Speter 117251876Speter#define SQL_FALSE 0 118251876Speter#define SQL_TRUE 1 119251876Speter 120