更新sqlite3.

This commit is contained in:
王炜 2018-06-15 10:19:41 +08:00
parent f971f18f6b
commit 8de9c8cc36
7 changed files with 109321 additions and 28856 deletions

View File

@ -2,11 +2,11 @@
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup /> <PropertyGroup />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<QTDIR>D:\develop\sdk\cpp\Qt\qt_5.10.1\5.10.1\msvc2017_64</QTDIR> <QTDIR>D:\develop\sdk\cpp\qt\qt_5.10.1\5.10.1\msvc2017_64</QTDIR>
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment> <LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<QTDIR>D:\develop\sdk\cpp\Qt\qt_5.10.1\5.10.1\msvc2017_64</QTDIR> <QTDIR>D:\develop\sdk\cpp\qt\qt_5.10.1\5.10.1\msvc2017_64</QTDIR>
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment> <LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View File

@ -82,11 +82,11 @@ void QTelSalePolicyInfoInputWidget::InitGiftTable()
//设置标志位 //设置标志位
m_initing = true; m_initing = true;
m_giftsList.clear(); giftsList.clear();
try try
{ {
queryTelsalePolicyGifts( m_giftsList ); queryTelsalePolicyGifts( giftsList );
} }
catch ( runtime_error & error ) catch ( runtime_error & error )
{ {
@ -97,11 +97,11 @@ void QTelSalePolicyInfoInputWidget::InitGiftTable()
pTableGifts->clearContents(); pTableGifts->clearContents();
pTableGifts->setColumnWidth( 0, 200 ); pTableGifts->setColumnWidth( 0, 200 );
pTableGifts->setRowCount( m_giftsList.size() + 2 ); pTableGifts->setRowCount( giftsList.size() + 2 );
vector<TelSalePolicyGift>::iterator iter = m_giftsList.begin(); vector<TelSalePolicyGift>::iterator iter = giftsList.begin();
for ( unsigned int rowIndex = 0; iter != m_giftsList.end(); rowIndex++ ) for ( unsigned int rowIndex = 0; iter != giftsList.end(); rowIndex++ )
{ {
QTableWidgetItem * pItem = new QTableWidgetItem(); QTableWidgetItem * pItem = new QTableWidgetItem();
@ -136,8 +136,8 @@ void QTelSalePolicyInfoInputWidget::InitGiftTable()
pItemOtherPrice->setFlags( Qt::ItemIsEnabled | Qt::ItemIsEditable ); pItemOtherPrice->setFlags( Qt::ItemIsEnabled | Qt::ItemIsEditable );
pItemOtherPrice->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter ); pItemOtherPrice->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
pTableGifts->setItem( m_giftsList.size(), 0, pItemOther ); pTableGifts->setItem( giftsList.size(), 0, pItemOther );
pTableGifts->setItem( m_giftsList.size(), 1, pItemOtherPrice ); pTableGifts->setItem( giftsList.size(), 1, pItemOtherPrice );
//礼品总价值 //礼品总价值
QTableWidgetItem * pItemTotalPrice = new QTableWidgetItem(); QTableWidgetItem * pItemTotalPrice = new QTableWidgetItem();
@ -153,8 +153,8 @@ void QTelSalePolicyInfoInputWidget::InitGiftTable()
pItemTotalPriceAmount->setFlags( Qt::ItemIsEnabled ); pItemTotalPriceAmount->setFlags( Qt::ItemIsEnabled );
pItemTotalPriceAmount->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter ); pItemTotalPriceAmount->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
pTableGifts->setItem( m_giftsList.size() + 1, 0, pItemTotalPrice ); pTableGifts->setItem( giftsList.size() + 1, 0, pItemTotalPrice );
pTableGifts->setItem( m_giftsList.size() + 1, 1, pItemTotalPriceAmount ); pTableGifts->setItem( giftsList.size() + 1, 1, pItemTotalPriceAmount );
pTableGifts->resizeColumnsToContents(); pTableGifts->resizeColumnsToContents();
@ -191,28 +191,28 @@ void QTelSalePolicyInfoInputWidget::onSalerCodeChanged()
pEditOfficeName->clear(); pEditOfficeName->clear();
pEditOfficeCode->clear(); pEditOfficeCode->clear();
m_strSalerCode.clear(); salerCode.clear();
m_strSalerName.clear(); salerName.clear();
m_strSalerDeptCode.clear(); salerDeptCode.clear();
m_strSalerDeptName.clear(); salerDeptName.clear();
} }
void QTelSalePolicyInfoInputWidget::onQuerySalerName() void QTelSalePolicyInfoInputWidget::onQuerySalerName()
{ {
m_strSalerCode = pEditSalerCode->text().trimmed().toUpper().toLocal8Bit().data(); salerCode = pEditSalerCode->text().trimmed().toUpper().toLocal8Bit().data();
queryStaffInfo( m_strSalerCode, queryStaffInfo( salerCode,
m_strSalerName, salerName,
m_strSalerDeptCode, salerDeptCode,
m_strSalerDeptName, salerDeptName,
m_strSalerOfficeCode, salerOfficeCode,
m_strSalerOfficeName ); salerOfficeName );
pEditSalerName->setText( QString::fromLocal8Bit( m_strSalerName.c_str() ) ); pEditSalerName->setText( QString::fromLocal8Bit( salerName.c_str() ) );
pEditOfficeCode->setText( QString::fromLocal8Bit( m_strSalerOfficeCode.c_str() ) ); pEditOfficeCode->setText( QString::fromLocal8Bit( salerOfficeCode.c_str() ) );
pEditOfficeName->setText( QString::fromLocal8Bit( m_strSalerOfficeName.c_str() ) ); pEditOfficeName->setText( QString::fromLocal8Bit( salerOfficeName.c_str() ) );
pEditDeptCode->setText( QString::fromLocal8Bit( m_strSalerDeptCode.c_str() ) ); pEditDeptCode->setText( QString::fromLocal8Bit( salerDeptCode.c_str() ) );
pEditDeptName->setText( QString::fromLocal8Bit( m_strSalerDeptName.c_str() ) ); pEditDeptName->setText( QString::fromLocal8Bit( salerDeptName.c_str() ) );
} }
void QTelSalePolicyInfoInputWidget::onSavePolicy() void QTelSalePolicyInfoInputWidget::onSavePolicy()
@ -238,7 +238,7 @@ void QTelSalePolicyInfoInputWidget::onSavePolicy()
return; return;
} }
if ( m_strSalerName.empty() == true ) if ( salerName.empty() == true )
{ {
QMessageBox::critical( this, QMessageBox::critical( this,
QString::fromLocal8Bit( "必须输入经办人代码" ), QString::fromLocal8Bit( "必须输入经办人代码" ),
@ -285,12 +285,12 @@ void QTelSalePolicyInfoInputWidget::onSavePolicy()
SPolicyRecord policy; //保单信息 SPolicyRecord policy; //保单信息
policy.strSalerCode = m_strSalerCode; policy.strSalerCode = salerCode;
policy.strSalerName = m_strSalerName; policy.strSalerName = salerName;
policy.strSalerDeptCode = m_strSalerDeptCode; policy.strSalerDeptCode = salerDeptCode;
policy.strSalerDeptName = m_strSalerDeptName; policy.strSalerDeptName = salerDeptName;
policy.strSalerOfficeCode = m_strSalerOfficeCode; policy.strSalerOfficeCode = salerOfficeCode;
policy.strSalerOfficeName = m_strSalerOfficeName; policy.strSalerOfficeName = salerOfficeName;
policy.strOperatorCode = getUserCode(); policy.strOperatorCode = getUserCode();
policy.strCustomerName = pEditCustomerName->text().trimmed().toLocal8Bit().data(); policy.strCustomerName = pEditCustomerName->text().trimmed().toLocal8Bit().data();
policy.strPlateSerial = pEditPlateSerial->text().trimmed().toLocal8Bit().data(); policy.strPlateSerial = pEditPlateSerial->text().trimmed().toLocal8Bit().data();
@ -309,10 +309,10 @@ void QTelSalePolicyInfoInputWidget::onSavePolicy()
} }
//车商代码 //车商代码
if ( m_strAutoTraderName.empty() == false ) if ( autoTraderName.empty() == false )
{ {
policy.strAutoTraderCode = m_strAutoTraderCode; policy.strAutoTraderCode = autoTraderCode;
policy.strAutoTraderName = m_strAutoTraderName; policy.strAutoTraderName = autoTraderName;
} }
if ( strJqxPolicySerial.empty() == false ) if ( strJqxPolicySerial.empty() == false )
@ -427,16 +427,16 @@ void QTelSalePolicyInfoInputWidget::onAutoTraderCodeChanged()
{ {
pEditAutoTraderName->clear(); pEditAutoTraderName->clear();
m_strAutoTraderName.clear(); autoTraderName.clear();
} }
void QTelSalePolicyInfoInputWidget::onQueryAutoTraderName() void QTelSalePolicyInfoInputWidget::onQueryAutoTraderName()
{ {
m_strAutoTraderCode = pEditAutoTraderCode->text().trimmed().toUpper().toLocal8Bit().data(); autoTraderCode = pEditAutoTraderCode->text().trimmed().toUpper().toLocal8Bit().data();
queryAutoTraderInfo( m_strAutoTraderCode, m_strAutoTraderName ); queryAutoTraderInfo( autoTraderCode, autoTraderName );
pEditAutoTraderName->setText( QString::fromLocal8Bit( m_strAutoTraderName.c_str() ) ); pEditAutoTraderName->setText( QString::fromLocal8Bit( autoTraderName.c_str() ) );
} }
void QTelSalePolicyInfoInputWidget::onReset() void QTelSalePolicyInfoInputWidget::onReset()

View File

@ -30,19 +30,24 @@ private:
void initSignal(); void initSignal();
void initData(); void initData();
void InitGiftTable(); void InitGiftTable();
/************************************************
* \brief
* \param giftList
************************************************/
void readGiftTable( vector<TelSalePolicyGift> & giftList ); void readGiftTable( vector<TelSalePolicyGift> & giftList );
private: private:
string m_strSalerCode; string salerCode;
string m_strSalerName; string salerName;
string m_strSalerDeptCode; string salerDeptCode;
string m_strSalerDeptName; string salerDeptName;
string m_strSalerOfficeCode; string salerOfficeCode;
string m_strSalerOfficeName; string salerOfficeName;
string m_strAutoTraderCode; string autoTraderCode;
string m_strAutoTraderName; string autoTraderName;
vector<TelSalePolicyGift> m_giftsList; vector<TelSalePolicyGift> giftsList;
bool m_initing; bool m_initing;
}; };

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@
** The author disclaims copyright to this source code. In place of ** The author disclaims copyright to this source code. In place of
** a legal notice, here is a blessing: ** a legal notice, here is a blessing:
** **
** May you do good and not evil. ** May you do good and not evil.
** May you find forgiveness for yourself and forgive others. ** May you find forgiveness for yourself and forgive others.
** May you share freely, never taking more than you give. ** May you share freely, never taking more than you give.
** **
@ -15,12 +15,10 @@
** as extensions by SQLite should #include this file instead of ** as extensions by SQLite should #include this file instead of
** sqlite3.h. ** sqlite3.h.
*/ */
#ifndef _SQLITE3EXT_H_ #ifndef SQLITE3EXT_H
#define _SQLITE3EXT_H_ #define SQLITE3EXT_H
#include "sqlite3.h" #include "sqlite3.h"
typedef struct sqlite3_api_routines sqlite3_api_routines;
/* /*
** The following structure holds pointers to all of the SQLite API ** The following structure holds pointers to all of the SQLite API
** routines. ** routines.
@ -28,7 +26,7 @@ typedef struct sqlite3_api_routines sqlite3_api_routines;
** WARNING: In order to maintain backwards compatibility, add new ** WARNING: In order to maintain backwards compatibility, add new
** interfaces to the end of this structure only. If you insert new ** interfaces to the end of this structure only. If you insert new
** interfaces in the middle of this structure, then older different ** interfaces in the middle of this structure, then older different
** versions of SQLite will not be able to load each others' shared ** versions of SQLite will not be able to load each other's shared
** libraries! ** libraries!
*/ */
struct sqlite3_api_routines { struct sqlite3_api_routines {
@ -136,7 +134,7 @@ struct sqlite3_api_routines {
int (*set_authorizer)(sqlite3*,int(*)(void*,int,const char*,const char*, int (*set_authorizer)(sqlite3*,int(*)(void*,int,const char*,const char*,
const char*,const char*),void*); const char*,const char*),void*);
void (*set_auxdata)(sqlite3_context*,int,void*,void (*)(void*)); void (*set_auxdata)(sqlite3_context*,int,void*,void (*)(void*));
char * (*snprintf)(int,char*,const char*,...); char * (*xsnprintf)(int,char*,const char*,...);
int (*step)(sqlite3_stmt*); int (*step)(sqlite3_stmt*);
int (*table_column_metadata)(sqlite3*,const char*,const char*,const char*, int (*table_column_metadata)(sqlite3*,const char*,const char*,const char*,
char const**,char const**,int*,int*,int*); char const**,char const**,int*,int*,int*);
@ -248,13 +246,85 @@ struct sqlite3_api_routines {
int (*uri_boolean)(const char*,const char*,int); int (*uri_boolean)(const char*,const char*,int);
sqlite3_int64 (*uri_int64)(const char*,const char*,sqlite3_int64); sqlite3_int64 (*uri_int64)(const char*,const char*,sqlite3_int64);
const char *(*uri_parameter)(const char*,const char*); const char *(*uri_parameter)(const char*,const char*);
char *(*vsnprintf)(int,char*,const char*,va_list); char *(*xvsnprintf)(int,char*,const char*,va_list);
int (*wal_checkpoint_v2)(sqlite3*,const char*,int,int*,int*); int (*wal_checkpoint_v2)(sqlite3*,const char*,int,int*,int*);
/* Version 3.8.7 and later */
int (*auto_extension)(void(*)(void));
int (*bind_blob64)(sqlite3_stmt*,int,const void*,sqlite3_uint64,
void(*)(void*));
int (*bind_text64)(sqlite3_stmt*,int,const char*,sqlite3_uint64,
void(*)(void*),unsigned char);
int (*cancel_auto_extension)(void(*)(void));
int (*load_extension)(sqlite3*,const char*,const char*,char**);
void *(*malloc64)(sqlite3_uint64);
sqlite3_uint64 (*msize)(void*);
void *(*realloc64)(void*,sqlite3_uint64);
void (*reset_auto_extension)(void);
void (*result_blob64)(sqlite3_context*,const void*,sqlite3_uint64,
void(*)(void*));
void (*result_text64)(sqlite3_context*,const char*,sqlite3_uint64,
void(*)(void*), unsigned char);
int (*strglob)(const char*,const char*);
/* Version 3.8.11 and later */
sqlite3_value *(*value_dup)(const sqlite3_value*);
void (*value_free)(sqlite3_value*);
int (*result_zeroblob64)(sqlite3_context*,sqlite3_uint64);
int (*bind_zeroblob64)(sqlite3_stmt*, int, sqlite3_uint64);
/* Version 3.9.0 and later */
unsigned int (*value_subtype)(sqlite3_value*);
void (*result_subtype)(sqlite3_context*,unsigned int);
/* Version 3.10.0 and later */
int (*status64)(int,sqlite3_int64*,sqlite3_int64*,int);
int (*strlike)(const char*,const char*,unsigned int);
int (*db_cacheflush)(sqlite3*);
/* Version 3.12.0 and later */
int (*system_errno)(sqlite3*);
/* Version 3.14.0 and later */
int (*trace_v2)(sqlite3*,unsigned,int(*)(unsigned,void*,void*,void*),void*);
char *(*expanded_sql)(sqlite3_stmt*);
/* Version 3.18.0 and later */
void (*set_last_insert_rowid)(sqlite3*,sqlite3_int64);
/* Version 3.20.0 and later */
int (*prepare_v3)(sqlite3*,const char*,int,unsigned int,
sqlite3_stmt**,const char**);
int (*prepare16_v3)(sqlite3*,const void*,int,unsigned int,
sqlite3_stmt**,const void**);
int (*bind_pointer)(sqlite3_stmt*,int,void*,const char*,void(*)(void*));
void (*result_pointer)(sqlite3_context*,void*,const char*,void(*)(void*));
void *(*value_pointer)(sqlite3_value*,const char*);
int (*vtab_nochange)(sqlite3_context*);
int (*value_nochange)(sqlite3_value*);
const char *(*vtab_collation)(sqlite3_index_info*,int);
/* Version 3.24.0 and later */
int (*keyword_count)(void);
int (*keyword_name)(int,const char**,int*);
int (*keyword_check)(const char*,int);
sqlite3_str *(*str_new)(sqlite3*);
char *(*str_finish)(sqlite3_str*);
void (*str_appendf)(sqlite3_str*, const char *zFormat, ...);
void (*str_vappendf)(sqlite3_str*, const char *zFormat, va_list);
void (*str_append)(sqlite3_str*, const char *zIn, int N);
void (*str_appendall)(sqlite3_str*, const char *zIn);
void (*str_appendchar)(sqlite3_str*, int N, char C);
void (*str_reset)(sqlite3_str*);
int (*str_errcode)(sqlite3_str*);
int (*str_length)(sqlite3_str*);
char *(*str_value)(sqlite3_str*);
}; };
/*
** This is the function signature used for all extension entry points. It
** is also defined in the file "loadext.c".
*/
typedef int (*sqlite3_loadext_entry)(
sqlite3 *db, /* Handle to the database. */
char **pzErrMsg, /* Used to set error string on failure. */
const sqlite3_api_routines *pThunk /* Extension API function pointers. */
);
/* /*
** The following macros redefine the API routines so that they are ** The following macros redefine the API routines so that they are
** redirected throught the global sqlite3_api structure. ** redirected through the global sqlite3_api structure.
** **
** This header file is also used by the loadext.c source file ** This header file is also used by the loadext.c source file
** (part of the main SQLite library - not an extension) so that ** (part of the main SQLite library - not an extension) so that
@ -263,7 +333,7 @@ struct sqlite3_api_routines {
** the API. So the redefinition macros are only valid if the ** the API. So the redefinition macros are only valid if the
** SQLITE_CORE macros is undefined. ** SQLITE_CORE macros is undefined.
*/ */
#ifndef SQLITE_CORE #if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION)
#define sqlite3_aggregate_context sqlite3_api->aggregate_context #define sqlite3_aggregate_context sqlite3_api->aggregate_context
#ifndef SQLITE_OMIT_DEPRECATED #ifndef SQLITE_OMIT_DEPRECATED
#define sqlite3_aggregate_count sqlite3_api->aggregate_count #define sqlite3_aggregate_count sqlite3_api->aggregate_count
@ -366,7 +436,7 @@ struct sqlite3_api_routines {
#define sqlite3_rollback_hook sqlite3_api->rollback_hook #define sqlite3_rollback_hook sqlite3_api->rollback_hook
#define sqlite3_set_authorizer sqlite3_api->set_authorizer #define sqlite3_set_authorizer sqlite3_api->set_authorizer
#define sqlite3_set_auxdata sqlite3_api->set_auxdata #define sqlite3_set_auxdata sqlite3_api->set_auxdata
#define sqlite3_snprintf sqlite3_api->snprintf #define sqlite3_snprintf sqlite3_api->xsnprintf
#define sqlite3_step sqlite3_api->step #define sqlite3_step sqlite3_api->step
#define sqlite3_table_column_metadata sqlite3_api->table_column_metadata #define sqlite3_table_column_metadata sqlite3_api->table_column_metadata
#define sqlite3_thread_cleanup sqlite3_api->thread_cleanup #define sqlite3_thread_cleanup sqlite3_api->thread_cleanup
@ -390,6 +460,7 @@ struct sqlite3_api_routines {
#define sqlite3_value_text16le sqlite3_api->value_text16le #define sqlite3_value_text16le sqlite3_api->value_text16le
#define sqlite3_value_type sqlite3_api->value_type #define sqlite3_value_type sqlite3_api->value_type
#define sqlite3_vmprintf sqlite3_api->vmprintf #define sqlite3_vmprintf sqlite3_api->vmprintf
#define sqlite3_vsnprintf sqlite3_api->xvsnprintf
#define sqlite3_overload_function sqlite3_api->overload_function #define sqlite3_overload_function sqlite3_api->overload_function
#define sqlite3_prepare_v2 sqlite3_api->prepare_v2 #define sqlite3_prepare_v2 sqlite3_api->prepare_v2
#define sqlite3_prepare16_v2 sqlite3_api->prepare16_v2 #define sqlite3_prepare16_v2 sqlite3_api->prepare16_v2
@ -465,11 +536,68 @@ struct sqlite3_api_routines {
#define sqlite3_uri_boolean sqlite3_api->uri_boolean #define sqlite3_uri_boolean sqlite3_api->uri_boolean
#define sqlite3_uri_int64 sqlite3_api->uri_int64 #define sqlite3_uri_int64 sqlite3_api->uri_int64
#define sqlite3_uri_parameter sqlite3_api->uri_parameter #define sqlite3_uri_parameter sqlite3_api->uri_parameter
#define sqlite3_uri_vsnprintf sqlite3_api->vsnprintf #define sqlite3_uri_vsnprintf sqlite3_api->xvsnprintf
#define sqlite3_wal_checkpoint_v2 sqlite3_api->wal_checkpoint_v2 #define sqlite3_wal_checkpoint_v2 sqlite3_api->wal_checkpoint_v2
#endif /* SQLITE_CORE */ /* Version 3.8.7 and later */
#define sqlite3_auto_extension sqlite3_api->auto_extension
#define sqlite3_bind_blob64 sqlite3_api->bind_blob64
#define sqlite3_bind_text64 sqlite3_api->bind_text64
#define sqlite3_cancel_auto_extension sqlite3_api->cancel_auto_extension
#define sqlite3_load_extension sqlite3_api->load_extension
#define sqlite3_malloc64 sqlite3_api->malloc64
#define sqlite3_msize sqlite3_api->msize
#define sqlite3_realloc64 sqlite3_api->realloc64
#define sqlite3_reset_auto_extension sqlite3_api->reset_auto_extension
#define sqlite3_result_blob64 sqlite3_api->result_blob64
#define sqlite3_result_text64 sqlite3_api->result_text64
#define sqlite3_strglob sqlite3_api->strglob
/* Version 3.8.11 and later */
#define sqlite3_value_dup sqlite3_api->value_dup
#define sqlite3_value_free sqlite3_api->value_free
#define sqlite3_result_zeroblob64 sqlite3_api->result_zeroblob64
#define sqlite3_bind_zeroblob64 sqlite3_api->bind_zeroblob64
/* Version 3.9.0 and later */
#define sqlite3_value_subtype sqlite3_api->value_subtype
#define sqlite3_result_subtype sqlite3_api->result_subtype
/* Version 3.10.0 and later */
#define sqlite3_status64 sqlite3_api->status64
#define sqlite3_strlike sqlite3_api->strlike
#define sqlite3_db_cacheflush sqlite3_api->db_cacheflush
/* Version 3.12.0 and later */
#define sqlite3_system_errno sqlite3_api->system_errno
/* Version 3.14.0 and later */
#define sqlite3_trace_v2 sqlite3_api->trace_v2
#define sqlite3_expanded_sql sqlite3_api->expanded_sql
/* Version 3.18.0 and later */
#define sqlite3_set_last_insert_rowid sqlite3_api->set_last_insert_rowid
/* Version 3.20.0 and later */
#define sqlite3_prepare_v3 sqlite3_api->prepare_v3
#define sqlite3_prepare16_v3 sqlite3_api->prepare16_v3
#define sqlite3_bind_pointer sqlite3_api->bind_pointer
#define sqlite3_result_pointer sqlite3_api->result_pointer
#define sqlite3_value_pointer sqlite3_api->value_pointer
/* Version 3.22.0 and later */
#define sqlite3_vtab_nochange sqlite3_api->vtab_nochange
#define sqlite3_value_nochange sqlite3_api->value_nochange
#define sqlite3_vtab_collation sqlite3_api->vtab_collation
/* Version 3.24.0 and later */
#define sqlite3_keyword_count sqlite3_api->keyword_count
#define sqlite3_keyword_name sqlite3_api->keyword_name
#define sqlite3_keyword_check sqlite3_api->keyword_check
#define sqlite3_str_new sqlite3_api->str_new
#define sqlite3_str_finish sqlite3_api->str_finish
#define sqlite3_str_appendf sqlite3_api->str_appendf
#define sqlite3_str_vappendf sqlite3_api->str_vappendf
#define sqlite3_str_append sqlite3_api->str_append
#define sqlite3_str_appendall sqlite3_api->str_appendall
#define sqlite3_str_appendchar sqlite3_api->str_appendchar
#define sqlite3_str_reset sqlite3_api->str_reset
#define sqlite3_str_errcode sqlite3_api->str_errcode
#define sqlite3_str_length sqlite3_api->str_length
#define sqlite3_str_value sqlite3_api->str_value
#endif /* !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION) */
#ifndef SQLITE_CORE #if !defined(SQLITE_CORE) && !defined(SQLITE_OMIT_LOAD_EXTENSION)
/* This case when the file really is being compiled as a loadable /* This case when the file really is being compiled as a loadable
** extension */ ** extension */
# define SQLITE_EXTENSION_INIT1 const sqlite3_api_routines *sqlite3_api=0; # define SQLITE_EXTENSION_INIT1 const sqlite3_api_routines *sqlite3_api=0;
@ -484,4 +612,4 @@ struct sqlite3_api_routines {
# define SQLITE_EXTENSION_INIT3 /*no-op*/ # define SQLITE_EXTENSION_INIT3 /*no-op*/
#endif #endif
#endif /* _SQLITE3EXT_H_ */ #endif /* SQLITE3EXT_H */