Go to the documentation of this file.
30 #ifndef CPL_ODBC_H_INCLUDED
31 #define CPL_ODBC_H_INCLUDED
46 # define ODBC_FILENAME_MAX PATH_MAX
48 # define ODBC_FILENAME_MAX (255 + 1)
63 char m_szPathOut[ODBC_FILENAME_MAX];
64 char m_szError[SQL_MAX_MESSAGE_LENGTH];
90 int InstallDriver(
const char* pszDriver,
const char* pszPathIn,
91 WORD fRequest = ODBC_INSTALL_COMPLETE );
109 int RemoveDriver(
const char* pszDriverName,
int fRemoveDSN = FALSE );
140 #if defined(_MSC_VER) && !defined(SQLULEN) && !defined(_WIN64)
141 # define MISSING_SQLULEN
145 #if !defined(MISSING_SQLULEN)
147 # define CPL_SQLULEN SQLULEN
148 # define CPL_SQLLEN SQLLEN
150 # define CPL_SQLULEN SQLUINTEGER
151 # define CPL_SQLLEN SQLINTEGER
166 HENV m_hEnv =
nullptr;
167 HDBC m_hDBC =
nullptr;
168 int m_bInTransaction =
false;
169 int m_bAutoCommit =
true;
175 int EstablishSession(
const char *pszDSN,
176 const char *pszUserid,
177 const char *pszPassword );
178 const char *GetLastError();
182 int ClearTransaction();
183 int BeginTransaction();
184 int CommitTransaction();
185 int RollbackTransaction();
193 int Failed(
int, HSTMT =
nullptr );
214 HSTMT m_hStmt =
nullptr;
216 SQLSMALLINT m_nColCount = 0;
217 char **m_papszColNames =
nullptr;
218 SQLSMALLINT *m_panColType =
nullptr;
219 char **m_papszColTypeNames =
nullptr;
220 CPL_SQLULEN *m_panColSize =
nullptr;
221 SQLSMALLINT *m_panColPrecision =
nullptr;
222 SQLSMALLINT *m_panColNullable =
nullptr;
223 char **m_papszColColumnDef =
nullptr;
225 char **m_papszColValues =
nullptr;
226 CPL_SQLLEN *m_panColValueLengths =
nullptr;
230 char *m_pszStatement =
nullptr;
231 size_t m_nStatementMax = 0;
232 size_t m_nStatementLen = 0;
243 void AppendEscaped(
const char * );
244 void Append(
const char * );
246 void Append(
double );
249 const
char *GetCommand() {
return m_pszStatement; }
251 int ExecuteSQL(
const char * =
nullptr );
254 int Fetch(
int nOrientation = SQL_FETCH_NEXT,
256 void ClearColumnData();
259 const char *GetColName(
int );
260 short GetColType(
int );
261 const char *GetColTypeName(
int );
262 short GetColSize(
int );
263 short GetColPrecision(
int );
264 short GetColNullable(
int );
265 const char *GetColColumnDef(
int );
267 int GetColId(
const char * );
268 const char *GetColData(
int,
const char * =
nullptr );
269 const char *GetColData(
const char *,
const char * =
nullptr );
270 int GetColDataLength(
int );
271 int GetRowCountAffected();
274 int GetColumns(
const char *pszTable,
275 const char *pszCatalog =
nullptr,
276 const char *pszSchema =
nullptr );
277 int GetPrimaryKeys(
const char *pszTable,
278 const char *pszCatalog =
nullptr,
279 const char *pszSchema =
nullptr );
281 int GetTables(
const char *pszCatalog =
nullptr,
282 const char *pszSchema =
nullptr );
284 void DumpResult( FILE *fp,
int bShowSchema = FALSE );
287 static SQLSMALLINT GetTypeMapping( SQLSMALLINT );
289 int CollectResultsInfo();
int InstallDriver(const char *pszDriver, const char *pszPathIn, WORD fRequest=ODBC_INSTALL_COMPLETE)
Definition: cpl_odbc.cpp:76
const char * GetColTypeName(int)
Definition: cpl_odbc.cpp:746
#define CPL_PRINT_FUNC_FORMAT(format_idx, arg_idx)
Definition: cpl_port.h:914
char * CPLRecodeFromWChar(const wchar_t *pwszSource, const char *pszSrcEncoding, const char *pszDstEncoding)
Definition: cpl_recode.cpp:149
CPLODBCSession()
Definition: cpl_odbc.cpp:162
CPLSTRING_METHOD_DLL CPLString & Printf(const char *pszFormat,...)
Definition: cplstring.cpp:59
int CollectResultsInfo()
Definition: cpl_odbc.cpp:579
void * CPLCalloc(size_t, size_t)
Definition: cpl_conv.cpp:138
short GetColNullable(int)
Definition: cpl_odbc.cpp:810
int GetTables(const char *pszCatalog=nullptr, const char *pszSchema=nullptr)
Definition: cpl_odbc.cpp:1657
int GetPrimaryKeys(const char *pszTable, const char *pszCatalog=nullptr, const char *pszSchema=nullptr)
Definition: cpl_odbc.cpp:1604
int RollbackTransaction()
Definition: cpl_odbc.cpp:305
static SQLSMALLINT GetTypeMapping(SQLSMALLINT)
Definition: cpl_odbc.cpp:1829
int CommitTransaction()
Definition: cpl_odbc.cpp:282
const char * GetColColumnDef(int)
Definition: cpl_odbc.cpp:834
Convenient string class based on std::string.
Definition: cpl_string.h:330
void * CPLRealloc(void *, size_t)
Definition: cpl_conv.cpp:225
#define CPL_FRMT_GIB
Definition: cpl_port.h:316
#define EQUAL(a, b)
Definition: cpl_port.h:569
void Clear()
Definition: cpl_odbc.cpp:1387
static CPLString GetTypeName(int)
Definition: cpl_odbc.cpp:1762
int Failed(int, HSTMT=nullptr)
Definition: cpl_odbc.cpp:336
int EstablishSession(const char *pszDSN, const char *pszUserid, const char *pszPassword)
Definition: cpl_odbc.cpp:403
#define CPLAssert(expr)
Definition: cpl_error.h:186
short GetColSize(int)
Definition: cpl_odbc.cpp:767
HSTMT GetStatement()
Definition: cpl_odbc.h:239
int GetColId(const char *)
Definition: cpl_odbc.cpp:1170
HDBC GetConnection()
Definition: cpl_odbc.h:195
HENV GetEnvironment()
Definition: cpl_odbc.h:197
void DumpResult(FILE *fp, int bShowSchema=FALSE)
Definition: cpl_odbc.cpp:1704
#define CPL_ENC_UTF8
Definition: cpl_string.h:265
int BeginTransaction()
Definition: cpl_odbc.cpp:244
void CPLDebug(const char *, const char *,...)
Definition: cpl_error.cpp:602
void AppendEscaped(const char *)
Definition: cpl_odbc.cpp:1265
~CPLODBCStatement()
Definition: cpl_odbc.cpp:512
void * CPLMalloc(size_t)
Definition: cpl_conv.cpp:168
int Fetch(int nOrientation=SQL_FETCH_NEXT, int nOffset=0)
Definition: cpl_odbc.cpp:867
~CPLODBCSession()
Definition: cpl_odbc.cpp:171
Definition: cpl_odbc.h:209
int GetRowCountAffected()
Definition: cpl_odbc.cpp:658
int GetColDataLength(int)
Definition: cpl_odbc.cpp:1144
void CPLError(CPLErr eErrClass, CPLErrorNum err_no, const char *fmt,...)
Definition: cpl_error.cpp:308
Definition: cpl_odbc.h:161
const char * GetLastError() const
Definition: cpl_odbc.h:124
const char * GetPathOut() const
Definition: cpl_odbc.h:118
int CloseSession()
Definition: cpl_odbc.cpp:182
void * VSIMalloc(size_t)
Definition: cpl_vsisimple.cpp:558
void CSLDestroy(char **papszStrList)
Definition: cpl_string.cpp:200
long long GIntBig
Definition: cpl_port.h:248
DWORD GetLastErrorCode() const
Definition: cpl_odbc.h:131
#define CPL_ENC_UCS2
Definition: cpl_string.h:269
#define CPL_UNUSED
Definition: cpl_port.h:948
#define CPL_FORMAT_STRING(arg)
Definition: cpl_port.h:929
short GetColType(int)
Definition: cpl_odbc.cpp:721
int ClearTransaction()
Definition: cpl_odbc.cpp:210
int Appendf(const char *,...)
Definition: cpl_odbc.cpp:1352
int GetUsageCount() const
Definition: cpl_odbc.h:112
Definition: cpl_odbc.h:62
int IsInTransaction()
Definition: cpl_odbc.h:187
void Append(const char *)
Definition: cpl_odbc.cpp:1227
char * CPLStrdup(const char *)
Definition: cpl_conv.cpp:293
const char * GetColName(int)
Definition: cpl_odbc.cpp:695
int GetColCount()
Definition: cpl_odbc.cpp:676
int GetColumns(const char *pszTable, const char *pszCatalog=nullptr, const char *pszSchema=nullptr)
Definition: cpl_odbc.cpp:1463
int ExecuteSQL(const char *=nullptr)
Definition: cpl_odbc.cpp:540
const char * GetColData(int, const char *=nullptr)
Definition: cpl_odbc.cpp:1096
short GetColPrecision(int)
Definition: cpl_odbc.cpp:789
const char * GetLastError()
Definition: cpl_odbc.cpp:480
int RemoveDriver(const char *pszDriverName, int fRemoveDSN=FALSE)
Definition: cpl_odbc.cpp:137
unsigned short GUInt16
Definition: cpl_port.h:213
#define CPLFree
Definition: cpl_conv.h:81
void ClearColumnData()
Definition: cpl_odbc.cpp:1185
#define CPL_DISALLOW_COPY_ASSIGN(ClassName)
Definition: cpl_port.h:997
#define CPLE_AppDefined
Definition: cpl_error.h:99
Generated for GDAL by
1.8.20.