更新sqlite3.
This commit is contained in:
		@@ -2,11 +2,11 @@
 | 
			
		||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
			
		||||
  <PropertyGroup />
 | 
			
		||||
  <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>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
  <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>
 | 
			
		||||
  </PropertyGroup>
 | 
			
		||||
</Project>
 | 
			
		||||
@@ -82,11 +82,11 @@ void QTelSalePolicyInfoInputWidget::InitGiftTable()
 | 
			
		||||
	//设置标志位
 | 
			
		||||
	m_initing = true;
 | 
			
		||||
 | 
			
		||||
	m_giftsList.clear();
 | 
			
		||||
	giftsList.clear();
 | 
			
		||||
 | 
			
		||||
	try
 | 
			
		||||
	{
 | 
			
		||||
		queryTelsalePolicyGifts( m_giftsList );
 | 
			
		||||
		queryTelsalePolicyGifts( giftsList );
 | 
			
		||||
	}
 | 
			
		||||
	catch ( runtime_error & error )
 | 
			
		||||
	{
 | 
			
		||||
@@ -97,11 +97,11 @@ void QTelSalePolicyInfoInputWidget::InitGiftTable()
 | 
			
		||||
 | 
			
		||||
	pTableGifts->clearContents();
 | 
			
		||||
	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();
 | 
			
		||||
 | 
			
		||||
@@ -136,8 +136,8 @@ void QTelSalePolicyInfoInputWidget::InitGiftTable()
 | 
			
		||||
	pItemOtherPrice->setFlags( Qt::ItemIsEnabled | Qt::ItemIsEditable );
 | 
			
		||||
	pItemOtherPrice->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
 | 
			
		||||
 | 
			
		||||
	pTableGifts->setItem( m_giftsList.size(), 0, pItemOther );
 | 
			
		||||
	pTableGifts->setItem( m_giftsList.size(), 1, pItemOtherPrice );
 | 
			
		||||
	pTableGifts->setItem( giftsList.size(), 0, pItemOther );
 | 
			
		||||
	pTableGifts->setItem( giftsList.size(), 1, pItemOtherPrice );
 | 
			
		||||
 | 
			
		||||
	//礼品总价值
 | 
			
		||||
	QTableWidgetItem * pItemTotalPrice       = new QTableWidgetItem();
 | 
			
		||||
@@ -153,8 +153,8 @@ void QTelSalePolicyInfoInputWidget::InitGiftTable()
 | 
			
		||||
	pItemTotalPriceAmount->setFlags( Qt::ItemIsEnabled );
 | 
			
		||||
	pItemTotalPriceAmount->setTextAlignment( Qt::AlignHCenter | Qt::AlignVCenter );
 | 
			
		||||
 | 
			
		||||
	pTableGifts->setItem( m_giftsList.size() + 1, 0, pItemTotalPrice );
 | 
			
		||||
	pTableGifts->setItem( m_giftsList.size() + 1, 1, pItemTotalPriceAmount );
 | 
			
		||||
	pTableGifts->setItem( giftsList.size() + 1, 0, pItemTotalPrice );
 | 
			
		||||
	pTableGifts->setItem( giftsList.size() + 1, 1, pItemTotalPriceAmount );
 | 
			
		||||
 | 
			
		||||
	pTableGifts->resizeColumnsToContents();
 | 
			
		||||
 | 
			
		||||
@@ -191,28 +191,28 @@ void QTelSalePolicyInfoInputWidget::onSalerCodeChanged()
 | 
			
		||||
	pEditOfficeName->clear();
 | 
			
		||||
	pEditOfficeCode->clear();
 | 
			
		||||
 | 
			
		||||
	m_strSalerCode.clear();
 | 
			
		||||
	m_strSalerName.clear();
 | 
			
		||||
	m_strSalerDeptCode.clear();
 | 
			
		||||
	m_strSalerDeptName.clear();
 | 
			
		||||
	salerCode.clear();
 | 
			
		||||
	salerName.clear();
 | 
			
		||||
	salerDeptCode.clear();
 | 
			
		||||
	salerDeptName.clear();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QTelSalePolicyInfoInputWidget::onQuerySalerName()
 | 
			
		||||
{
 | 
			
		||||
	m_strSalerCode = pEditSalerCode->text().trimmed().toUpper().toLocal8Bit().data();
 | 
			
		||||
	salerCode = pEditSalerCode->text().trimmed().toUpper().toLocal8Bit().data();
 | 
			
		||||
 | 
			
		||||
	queryStaffInfo( m_strSalerCode,
 | 
			
		||||
	                m_strSalerName,
 | 
			
		||||
	                m_strSalerDeptCode,
 | 
			
		||||
	                m_strSalerDeptName,
 | 
			
		||||
	                m_strSalerOfficeCode,
 | 
			
		||||
	                m_strSalerOfficeName );
 | 
			
		||||
	queryStaffInfo( salerCode,
 | 
			
		||||
	                salerName,
 | 
			
		||||
	                salerDeptCode,
 | 
			
		||||
	                salerDeptName,
 | 
			
		||||
	                salerOfficeCode,
 | 
			
		||||
	                salerOfficeName );
 | 
			
		||||
 | 
			
		||||
	pEditSalerName->setText( QString::fromLocal8Bit( m_strSalerName.c_str() ) );
 | 
			
		||||
	pEditOfficeCode->setText( QString::fromLocal8Bit( m_strSalerOfficeCode.c_str() ) );
 | 
			
		||||
	pEditOfficeName->setText( QString::fromLocal8Bit( m_strSalerOfficeName.c_str() ) );
 | 
			
		||||
	pEditDeptCode->setText( QString::fromLocal8Bit( m_strSalerDeptCode.c_str() ) );
 | 
			
		||||
	pEditDeptName->setText( QString::fromLocal8Bit( m_strSalerDeptName.c_str() ) );
 | 
			
		||||
	pEditSalerName->setText( QString::fromLocal8Bit( salerName.c_str() ) );
 | 
			
		||||
	pEditOfficeCode->setText( QString::fromLocal8Bit( salerOfficeCode.c_str() ) );
 | 
			
		||||
	pEditOfficeName->setText( QString::fromLocal8Bit( salerOfficeName.c_str() ) );
 | 
			
		||||
	pEditDeptCode->setText( QString::fromLocal8Bit( salerDeptCode.c_str() ) );
 | 
			
		||||
	pEditDeptName->setText( QString::fromLocal8Bit( salerDeptName.c_str() ) );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void QTelSalePolicyInfoInputWidget::onSavePolicy()
 | 
			
		||||
@@ -238,7 +238,7 @@ void QTelSalePolicyInfoInputWidget::onSavePolicy()
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if ( m_strSalerName.empty() == true )
 | 
			
		||||
	if ( salerName.empty() == true )
 | 
			
		||||
	{
 | 
			
		||||
		QMessageBox::critical( this,
 | 
			
		||||
		                       QString::fromLocal8Bit( "必须输入经办人代码" ),
 | 
			
		||||
@@ -285,12 +285,12 @@ void QTelSalePolicyInfoInputWidget::onSavePolicy()
 | 
			
		||||
 | 
			
		||||
	SPolicyRecord policy; //保单信息
 | 
			
		||||
 | 
			
		||||
	policy.strSalerCode       = m_strSalerCode;
 | 
			
		||||
	policy.strSalerName       = m_strSalerName;
 | 
			
		||||
	policy.strSalerDeptCode   = m_strSalerDeptCode;
 | 
			
		||||
	policy.strSalerDeptName   = m_strSalerDeptName;
 | 
			
		||||
	policy.strSalerOfficeCode = m_strSalerOfficeCode;
 | 
			
		||||
	policy.strSalerOfficeName = m_strSalerOfficeName;
 | 
			
		||||
	policy.strSalerCode       = salerCode;
 | 
			
		||||
	policy.strSalerName       = salerName;
 | 
			
		||||
	policy.strSalerDeptCode   = salerDeptCode;
 | 
			
		||||
	policy.strSalerDeptName   = salerDeptName;
 | 
			
		||||
	policy.strSalerOfficeCode = salerOfficeCode;
 | 
			
		||||
	policy.strSalerOfficeName = salerOfficeName;
 | 
			
		||||
	policy.strOperatorCode    = getUserCode();
 | 
			
		||||
	policy.strCustomerName    = pEditCustomerName->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.strAutoTraderName = m_strAutoTraderName;
 | 
			
		||||
		policy.strAutoTraderCode = autoTraderCode;
 | 
			
		||||
		policy.strAutoTraderName = autoTraderName;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if ( strJqxPolicySerial.empty() == false )
 | 
			
		||||
@@ -427,16 +427,16 @@ void QTelSalePolicyInfoInputWidget::onAutoTraderCodeChanged()
 | 
			
		||||
{
 | 
			
		||||
	pEditAutoTraderName->clear();
 | 
			
		||||
 | 
			
		||||
	m_strAutoTraderName.clear();
 | 
			
		||||
	autoTraderName.clear();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
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()
 | 
			
		||||
 
 | 
			
		||||
@@ -30,19 +30,24 @@ private:
 | 
			
		||||
	void initSignal();
 | 
			
		||||
	void initData();
 | 
			
		||||
	void InitGiftTable();
 | 
			
		||||
 | 
			
		||||
	/************************************************
 | 
			
		||||
	* \brief 读取礼品列表
 | 
			
		||||
	* \param giftList 
 | 
			
		||||
	************************************************/
 | 
			
		||||
	void readGiftTable( vector<TelSalePolicyGift> & giftList );
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	string m_strSalerCode;
 | 
			
		||||
	string m_strSalerName;
 | 
			
		||||
	string m_strSalerDeptCode;
 | 
			
		||||
	string m_strSalerDeptName;
 | 
			
		||||
	string m_strSalerOfficeCode;
 | 
			
		||||
	string m_strSalerOfficeName;
 | 
			
		||||
	string m_strAutoTraderCode;
 | 
			
		||||
	string m_strAutoTraderName;
 | 
			
		||||
	string salerCode;
 | 
			
		||||
	string salerName;
 | 
			
		||||
	string salerDeptCode;
 | 
			
		||||
	string salerDeptName;
 | 
			
		||||
	string salerOfficeCode;
 | 
			
		||||
	string salerOfficeName;
 | 
			
		||||
	string autoTraderCode;
 | 
			
		||||
	string autoTraderName;
 | 
			
		||||
 | 
			
		||||
	vector<TelSalePolicyGift> m_giftsList;
 | 
			
		||||
	vector<TelSalePolicyGift> giftsList;
 | 
			
		||||
 | 
			
		||||
	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
											
										
									
								
							@@ -15,12 +15,10 @@
 | 
			
		||||
** as extensions by SQLite should #include this file instead of 
 | 
			
		||||
** sqlite3.h.
 | 
			
		||||
*/
 | 
			
		||||
#ifndef _SQLITE3EXT_H_
 | 
			
		||||
#define _SQLITE3EXT_H_
 | 
			
		||||
#ifndef SQLITE3EXT_H
 | 
			
		||||
#define SQLITE3EXT_H
 | 
			
		||||
#include "sqlite3.h"
 | 
			
		||||
 | 
			
		||||
typedef struct sqlite3_api_routines sqlite3_api_routines;
 | 
			
		||||
 | 
			
		||||
/*
 | 
			
		||||
** The following structure holds pointers to all of the SQLite API
 | 
			
		||||
** routines.
 | 
			
		||||
@@ -28,7 +26,7 @@ typedef struct sqlite3_api_routines sqlite3_api_routines;
 | 
			
		||||
** WARNING:  In order to maintain backwards compatibility, add new
 | 
			
		||||
** interfaces to the end of this structure only.  If you insert new
 | 
			
		||||
** 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!
 | 
			
		||||
*/
 | 
			
		||||
struct sqlite3_api_routines {
 | 
			
		||||
@@ -136,7 +134,7 @@ struct sqlite3_api_routines {
 | 
			
		||||
  int  (*set_authorizer)(sqlite3*,int(*)(void*,int,const char*,const char*,
 | 
			
		||||
                         const char*,const char*),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  (*table_column_metadata)(sqlite3*,const char*,const char*,const char*,
 | 
			
		||||
                                char const**,char const**,int*,int*,int*);
 | 
			
		||||
@@ -248,13 +246,85 @@ struct sqlite3_api_routines {
 | 
			
		||||
  int (*uri_boolean)(const char*,const char*,int);
 | 
			
		||||
  sqlite3_int64 (*uri_int64)(const char*,const char*,sqlite3_int64);
 | 
			
		||||
  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*);
 | 
			
		||||
  /* 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
 | 
			
		||||
** 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
 | 
			
		||||
** (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
 | 
			
		||||
** 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
 | 
			
		||||
#ifndef SQLITE_OMIT_DEPRECATED
 | 
			
		||||
#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_set_authorizer         sqlite3_api->set_authorizer
 | 
			
		||||
#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_table_column_metadata  sqlite3_api->table_column_metadata
 | 
			
		||||
#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_type             sqlite3_api->value_type
 | 
			
		||||
#define sqlite3_vmprintf               sqlite3_api->vmprintf
 | 
			
		||||
#define sqlite3_vsnprintf              sqlite3_api->xvsnprintf
 | 
			
		||||
#define sqlite3_overload_function      sqlite3_api->overload_function
 | 
			
		||||
#define sqlite3_prepare_v2             sqlite3_api->prepare_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_int64              sqlite3_api->uri_int64
 | 
			
		||||
#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
 | 
			
		||||
#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 
 | 
			
		||||
  ** extension */
 | 
			
		||||
# 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*/
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /* _SQLITE3EXT_H_ */
 | 
			
		||||
#endif /* SQLITE3EXT_H */
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user