Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qsql_ibase.cpp File Reference

(8d8805214df22bf8dccbb30c9ca4a9953f3a1068)

#include "qsql_ibase_p.h"
#include <QtCore/qcoreapplication.h>
#include <QtCore/qendian.h>
#include <QtCore/qdatetime.h>
#include <QtCore/qtimezone.h>
#include <QtCore/qdeadlinetimer.h>
#include <QtCore/qdebug.h>
#include <QtCore/qlist.h>
#include <QtCore/private/qlocale_tools_p.h>
#include <QtCore/qloggingcategory.h>
#include <QtCore/qmap.h>
#include <QtCore/qmutex.h>
#include <QtCore/qvariant.h>
#include <QtCore/qvarlengtharray.h>
#include <QtSql/qsqlerror.h>
#include <QtSql/qsqlfield.h>
#include <QtSql/qsqlindex.h>
#include <QtSql/qsqlquery.h>
#include <QtSql/private/qsqlcachedresult_p.h>
#include <QtSql/private/qsqldriver_p.h>
#include <stdlib.h>
#include <limits.h>
#include <math.h>
#include <mutex>
#include "moc_qsql_ibase_p.cpp"
+ Include dependency graph for qsql_ibase.cpp:

Go to the source code of this file.

Classes

struct  QIBaseEventBuffer
 
class  QIBaseDriverPrivate
 
class  QIBaseResult
 
class  QIBaseResultPrivate
 

Macros

#define FBVERSION   SQL_DIALECT_V6
 
#define SQLDA_CURRENT_VERSION   SQLDA_VERSION1
 
#define blr_boolean_dtype   blr_bool
 

Typedefs

typedef QMap< void *, QIBaseDriver * > QIBaseBufferDriverMap
 

Functions

static bool getIBaseError (QString &msg, const ISC_STATUS *status, ISC_LONG &sqlcode)
 
static void createDA (XSQLDA *&sqlda)
 
static void enlargeDA (XSQLDA *&sqlda, int n)
 
static void initDA (XSQLDA *sqlda)
 
static void delDA (XSQLDA *&sqlda)
 
static QMetaType::Type qIBaseTypeName (int iType, bool hasScale)
 
static QMetaType::Type qIBaseTypeName2 (int iType, bool hasScale)
 
static ISC_TIMESTAMP toTimeStamp (const QDateTime &dt)
 
static QDateTime fromTimeStamp (const char *buffer)
 
static ISC_TIME toTime (QTime t)
 
static QTime fromTime (const char *buffer)
 
static ISC_DATE toDate (QDate t)
 
static QDate fromDate (const char *buffer)
 
 Q_GLOBAL_STATIC (QMutex, qMutex)
 
static void qFreeEventBuffer (QIBaseEventBuffer *eBuffer)
 
template<typename T>
static QList< QVarianttoList (const char **buf, int count)
 
static const char * readArrayBuffer (QList< QVariant > &list, const char *buffer, short curDim, const short *numElements, ISC_ARRAY_DESC *arrayDesc)
 
template<typename T>
static char * fillList (char *buffer, const QList< QVariant > &list, T *=nullptr)
 
template<>
char * fillList< float > (char *buffer, const QList< QVariant > &list, float *)
 
static char * qFillBufferWithString (char *buffer, const QString &string, short buflen, bool varying, bool array)
 
static char * createArrayBuffer (char *buffer, const QList< QVariant > &list, QMetaType::Type type, short curDim, ISC_ARRAY_DESC *arrayDesc, QString &error)
 
static ISC_EVENT_CALLBACK qEventCallback (char *result, ISC_USHORT length, const ISC_UCHAR *updated)
 
template<>
char * fillList< float > (char *buffer, const QList< QVariant > &list, float *)
 

Variables

constexpr qsizetype QIBaseChunkSize = SHRT_MAX / 2
 
static constexpr auto s_ibaseBaseDate = QDate::fromJulianDay(2400001)
 

Macro Definition Documentation

◆ blr_boolean_dtype

#define blr_boolean_dtype   blr_bool

Definition at line 43 of file qsql_ibase.cpp.

◆ FBVERSION

#define FBVERSION   SQL_DIALECT_V6

Definition at line 35 of file qsql_ibase.cpp.

◆ SQLDA_CURRENT_VERSION

#define SQLDA_CURRENT_VERSION   SQLDA_VERSION1

Definition at line 38 of file qsql_ibase.cpp.

Typedef Documentation

◆ QIBaseBufferDriverMap

Definition at line 370 of file qsql_ibase.cpp.

Function Documentation

◆ createArrayBuffer()

static char * createArrayBuffer ( char * buffer,
const QList< QVariant > & list,
QMetaType::Type type,
short curDim,
ISC_ARRAY_DESC * arrayDesc,
QString & error )
static

Definition at line 797 of file qsql_ibase.cpp.

◆ createDA()

static void createDA ( XSQLDA *& sqlda)
static

Definition at line 76 of file qsql_ibase.cpp.

◆ delDA()

static void delDA ( XSQLDA *& sqlda)
static

Definition at line 144 of file qsql_ibase.cpp.

◆ enlargeDA()

static void enlargeDA ( XSQLDA *& sqlda,
int n )
static

Definition at line 87 of file qsql_ibase.cpp.

◆ fillList()

template<typename T>
static char * fillList ( char * buffer,
const QList< QVariant > & list,
T * = nullptr )
static

Definition at line 751 of file qsql_ibase.cpp.

◆ fillList< float >() [1/2]

template<>
char * fillList< float > ( char * buffer,
const QList< QVariant > & list,
float *  )

Definition at line 762 of file qsql_ibase.cpp.

◆ fillList< float >() [2/2]

template<>
char * fillList< float > ( char * buffer,
const QList< QVariant > & list,
float *  )

Definition at line 762 of file qsql_ibase.cpp.

◆ fromDate()

static QDate fromDate ( const char * buffer)
inlinestatic

Definition at line 303 of file qsql_ibase.cpp.

◆ fromTime()

static QTime fromTime ( const char * buffer)
inlinestatic

Definition at line 290 of file qsql_ibase.cpp.

◆ fromTimeStamp()

static QDateTime fromTimeStamp ( const char * buffer)
inlinestatic

Definition at line 244 of file qsql_ibase.cpp.

◆ getIBaseError()

static bool getIBaseError ( QString & msg,
const ISC_STATUS * status,
ISC_LONG & sqlcode )
static

Definition at line 60 of file qsql_ibase.cpp.

◆ initDA()

static void initDA ( XSQLDA * sqlda)
static

Definition at line 97 of file qsql_ibase.cpp.

◆ Q_GLOBAL_STATIC()

Q_GLOBAL_STATIC ( QMutex ,
qMutex  )

◆ qEventCallback()

static ISC_EVENT_CALLBACK qEventCallback ( char * result,
ISC_USHORT length,
const ISC_UCHAR * updated )
static

Definition at line 1870 of file qsql_ibase.cpp.

◆ qFillBufferWithString()

static char * qFillBufferWithString ( char * buffer,
const QString & string,
short buflen,
bool varying,
bool array )
static

Definition at line 773 of file qsql_ibase.cpp.

◆ qFreeEventBuffer()

static void qFreeEventBuffer ( QIBaseEventBuffer * eBuffer)
static

Definition at line 374 of file qsql_ibase.cpp.

◆ qIBaseTypeName()

static QMetaType::Type qIBaseTypeName ( int iType,
bool hasScale )
static

Definition at line 156 of file qsql_ibase.cpp.

◆ qIBaseTypeName2()

static QMetaType::Type qIBaseTypeName2 ( int iType,
bool hasScale )
static

Definition at line 193 of file qsql_ibase.cpp.

◆ readArrayBuffer()

static const char * readArrayBuffer ( QList< QVariant > & list,
const char * buffer,
short curDim,
const short * numElements,
ISC_ARRAY_DESC * arrayDesc )
static

Definition at line 617 of file qsql_ibase.cpp.

◆ toDate()

static ISC_DATE toDate ( QDate t)
inlinestatic

Definition at line 298 of file qsql_ibase.cpp.

◆ toList()

template<typename T>
static QList< QVariant > toList ( const char ** buf,
int count )
static

Definition at line 606 of file qsql_ibase.cpp.

◆ toTime()

static ISC_TIME toTime ( QTime t)
inlinestatic

Definition at line 285 of file qsql_ibase.cpp.

◆ toTimeStamp()

static ISC_TIMESTAMP toTimeStamp ( const QDateTime & dt)
inlinestatic

Definition at line 236 of file qsql_ibase.cpp.

Variable Documentation

◆ QIBaseChunkSize

qsizetype QIBaseChunkSize = SHRT_MAX / 2
constexpr

Definition at line 50 of file qsql_ibase.cpp.

◆ s_ibaseBaseDate

static constexpr auto s_ibaseBaseDate = QDate::fromJulianDay(2400001)
staticconstexpr

Definition at line 234 of file qsql_ibase.cpp.