Update of qsqlite (Qt 5.0.0 version)
This commit is contained in:
parent
2495c6cc61
commit
11938e3d79
11
3rdparty/qsqlite/CMakeLists.txt
vendored
11
3rdparty/qsqlite/CMakeLists.txt
vendored
@ -5,18 +5,19 @@ add_definitions(-DQT_STATICPLUGIN)
|
|||||||
# Source files
|
# Source files
|
||||||
set(SQLITE-SOURCES
|
set(SQLITE-SOURCES
|
||||||
qsql_sqlite.cpp
|
qsql_sqlite.cpp
|
||||||
smain.cpp
|
|
||||||
clementinesqlcachedresult.cpp
|
clementinesqlcachedresult.cpp
|
||||||
|
smain.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
# Header files that have Q_OBJECT in
|
# Header files that have Q_OBJECT in
|
||||||
set(SQLITE-MOC-HEADERS
|
set(SQLITE-MOC-HEADERS
|
||||||
qsql_sqlite.h
|
qsql_sqlite.h
|
||||||
|
smain.h
|
||||||
)
|
)
|
||||||
|
|
||||||
set(SQLITE-WIN32-RESOURCES qsqlite_resource.rc)
|
set(SQLITE-WIN32-RESOURCES qsqlite_resource.rc)
|
||||||
|
|
||||||
qt4_wrap_cpp(SQLITE-SOURCES-MOC ${SQLITE-MOC-HEADERS})
|
qt5_wrap_cpp(SQLITE-SOURCES-MOC ${SQLITE-MOC-HEADERS})
|
||||||
|
|
||||||
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
include_directories(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
@ -40,7 +41,9 @@ add_library(qsqlite STATIC
|
|||||||
${SQLITE-SOURCES-MOC}
|
${SQLITE-SOURCES-MOC}
|
||||||
${SQLITE-WIN32-RESOURCES}
|
${SQLITE-WIN32-RESOURCES}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
set_property(TARGET qsqlite PROPERTY QT_STATICPLUGIN 1)
|
||||||
|
|
||||||
target_link_libraries(qsqlite
|
target_link_libraries(qsqlite
|
||||||
${SQLITE_LIBRARIES}
|
Qt5::Core Qt5::Sql
|
||||||
${QT_LIBRARIES}
|
|
||||||
)
|
)
|
||||||
|
61
3rdparty/qsqlite/clementinesqlcachedresult.cpp
vendored
61
3rdparty/qsqlite/clementinesqlcachedresult.cpp
vendored
@ -1,17 +1,18 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||||
** All rights reserved.
|
** Contact: http://www.qt-project.org/legal
|
||||||
** Contact: Nokia Corporation (qt-info@nokia.com)
|
|
||||||
**
|
**
|
||||||
** This file is part of the QtSql module of the Qt Toolkit.
|
** This file is part of the QtSql module of the Qt Toolkit.
|
||||||
**
|
**
|
||||||
** $QT_BEGIN_LICENSE:LGPL$
|
** $QT_BEGIN_LICENSE:LGPL$
|
||||||
** No Commercial Usage
|
** Commercial License Usage
|
||||||
** This file contains pre-release code and may not be distributed.
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
** You may use this file in accordance with the terms and conditions
|
** accordance with the commercial license agreement provided with the
|
||||||
** contained in the Technology Preview License Agreement accompanying
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
** this package.
|
** a written agreement between you and Digia. For licensing terms and
|
||||||
|
** conditions see http://qt.digia.com/licensing. For further information
|
||||||
|
** use the contact form at http://qt.digia.com/contact-us.
|
||||||
**
|
**
|
||||||
** GNU Lesser General Public License Usage
|
** GNU Lesser General Public License Usage
|
||||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||||
@ -21,30 +22,31 @@
|
|||||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||||
**
|
**
|
||||||
** In addition, as a special exception, Nokia gives you certain additional
|
** In addition, as a special exception, Digia gives you certain additional
|
||||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||||
**
|
**
|
||||||
** If you have questions regarding the use of this file, please contact
|
** GNU General Public License Usage
|
||||||
** Nokia at qt-info@nokia.com.
|
** Alternatively, this file may be used under the terms of the GNU
|
||||||
**
|
** General Public License version 3.0 as published by the Free Software
|
||||||
**
|
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||||
**
|
** packaging of this file. Please review the following information to
|
||||||
**
|
** ensure the GNU General Public License version 3.0 requirements will be
|
||||||
**
|
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||||
**
|
|
||||||
**
|
**
|
||||||
**
|
**
|
||||||
** $QT_END_LICENSE$
|
** $QT_END_LICENSE$
|
||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include "clementinesqlcachedresult.h"
|
|
||||||
|
|
||||||
#include <qvariant.h>
|
#include <qvariant.h>
|
||||||
#include <qdatetime.h>
|
#include <qdatetime.h>
|
||||||
#include <qvector.h>
|
#include <qvector.h>
|
||||||
|
|
||||||
|
#include "clementinesqlcachedresult.h"
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
/*
|
/*
|
||||||
ClementineSqlCachedResult is a convenience class for databases that only allow
|
ClementineSqlCachedResult is a convenience class for databases that only allow
|
||||||
forward only fetching. It will cache all the results so we can iterate
|
forward only fetching. It will cache all the results so we can iterate
|
||||||
@ -302,12 +304,19 @@ ClementineSqlCachedResult::ValueCache &ClementineSqlCachedResult::cache()
|
|||||||
|
|
||||||
void ClementineSqlCachedResult::virtual_hook(int id, void *data)
|
void ClementineSqlCachedResult::virtual_hook(int id, void *data)
|
||||||
{
|
{
|
||||||
switch (id) {
|
|
||||||
case QSqlResult::DetachFromResultSet:
|
|
||||||
case QSqlResult::SetNumericalPrecision:
|
|
||||||
cleanup();
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
QSqlResult::virtual_hook(id, data);
|
QSqlResult::virtual_hook(id, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ClementineSqlCachedResult::detachFromResultSet()
|
||||||
|
{
|
||||||
|
cleanup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ClementineSqlCachedResult::setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy policy)
|
||||||
|
{
|
||||||
|
QSqlResult::setNumericalPrecisionPolicy(policy);
|
||||||
|
cleanup();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QT_END_NAMESPACE
|
||||||
|
63
3rdparty/qsqlite/clementinesqlcachedresult.h
vendored
63
3rdparty/qsqlite/clementinesqlcachedresult.h
vendored
@ -1,17 +1,18 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
|
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||||
** All rights reserved.
|
** Contact: http://www.qt-project.org/legal
|
||||||
** Contact: Nokia Corporation (qt-info@nokia.com)
|
|
||||||
**
|
**
|
||||||
** This file is part of the QtSql module of the Qt Toolkit.
|
** This file is part of the QtSql module of the Qt Toolkit.
|
||||||
**
|
**
|
||||||
** $QT_BEGIN_LICENSE:LGPL$
|
** $QT_BEGIN_LICENSE:LGPL$
|
||||||
** No Commercial Usage
|
** Commercial License Usage
|
||||||
** This file contains pre-release code and may not be distributed.
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
** You may use this file in accordance with the terms and conditions
|
** accordance with the commercial license agreement provided with the
|
||||||
** contained in the Technology Preview License Agreement accompanying
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
** this package.
|
** a written agreement between you and Digia. For licensing terms and
|
||||||
|
** conditions see http://qt.digia.com/licensing. For further information
|
||||||
|
** use the contact form at http://qt.digia.com/contact-us.
|
||||||
**
|
**
|
||||||
** GNU Lesser General Public License Usage
|
** GNU Lesser General Public License Usage
|
||||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||||
@ -21,35 +22,47 @@
|
|||||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||||
**
|
**
|
||||||
** In addition, as a special exception, Nokia gives you certain additional
|
** In addition, as a special exception, Digia gives you certain additional
|
||||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||||
**
|
**
|
||||||
** If you have questions regarding the use of this file, please contact
|
** GNU General Public License Usage
|
||||||
** Nokia at qt-info@nokia.com.
|
** Alternatively, this file may be used under the terms of the GNU
|
||||||
**
|
** General Public License version 3.0 as published by the Free Software
|
||||||
**
|
** Foundation and appearing in the file LICENSE.GPL included in the
|
||||||
**
|
** packaging of this file. Please review the following information to
|
||||||
**
|
** ensure the GNU General Public License version 3.0 requirements will be
|
||||||
**
|
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||||
**
|
|
||||||
**
|
**
|
||||||
**
|
**
|
||||||
** $QT_END_LICENSE$
|
** $QT_END_LICENSE$
|
||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#ifndef CLEMENTINECACHEDRESULT_P_H
|
#ifndef QSQLCACHEDRESULT_P_H
|
||||||
#define CLEMENTINECACHEDRESULT_P_H
|
#define QSQLCACHEDRESULT_P_H
|
||||||
|
|
||||||
#include <QSqlResult>
|
//
|
||||||
|
// W A R N I N G
|
||||||
|
// -------------
|
||||||
|
//
|
||||||
|
// This file is not part of the Qt API. It exists for the convenience
|
||||||
|
// of other Qt classes. This header file may change from version to
|
||||||
|
// version without notice, or even be removed.
|
||||||
|
//
|
||||||
|
// We mean it.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "QtSql/qsqlresult.h"
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
class QVariant;
|
class QVariant;
|
||||||
template <typename T> class QVector;
|
template <typename T> class QVector;
|
||||||
|
|
||||||
class ClementineSqlCachedResultPrivate;
|
class ClementineSqlCachedResultPrivate;
|
||||||
|
|
||||||
class ClementineSqlCachedResult: public QSqlResult
|
class Q_SQL_EXPORT ClementineSqlCachedResult: public QSqlResult
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
virtual ~ClementineSqlCachedResult();
|
virtual ~ClementineSqlCachedResult();
|
||||||
@ -77,9 +90,13 @@ protected:
|
|||||||
ValueCache &cache();
|
ValueCache &cache();
|
||||||
|
|
||||||
void virtual_hook(int id, void *data);
|
void virtual_hook(int id, void *data);
|
||||||
|
void detachFromResultSet();
|
||||||
|
void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy policy);
|
||||||
private:
|
private:
|
||||||
bool cacheNext();
|
bool cacheNext();
|
||||||
ClementineSqlCachedResultPrivate *d;
|
ClementineSqlCachedResultPrivate *d;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CLEMENTINESQLCACHEDRESULT_P_H
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
|
#endif // QSQLCACHEDRESULT_P_H
|
||||||
|
169
3rdparty/qsqlite/qsql_sqlite.cpp
vendored
169
3rdparty/qsqlite/qsql_sqlite.cpp
vendored
@ -1,17 +1,18 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
|
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||||
** All rights reserved.
|
** Contact: http://www.qt-project.org/legal
|
||||||
** Contact: Nokia Corporation (qt-info@nokia.com)
|
|
||||||
**
|
**
|
||||||
** This file is part of the QtSql module of the Qt Toolkit.
|
** This file is part of the QtSql module of the Qt Toolkit.
|
||||||
**
|
**
|
||||||
** $QT_BEGIN_LICENSE:LGPL$
|
** $QT_BEGIN_LICENSE:LGPL$
|
||||||
** Commercial Usage
|
** Commercial License Usage
|
||||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
** accordance with the Qt Commercial License Agreement provided with the
|
** accordance with the commercial license agreement provided with the
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
** a written agreement between you and Nokia.
|
** a written agreement between you and Digia. For licensing terms and
|
||||||
|
** conditions see http://qt.digia.com/licensing. For further information
|
||||||
|
** use the contact form at http://qt.digia.com/contact-us.
|
||||||
**
|
**
|
||||||
** GNU Lesser General Public License Usage
|
** GNU Lesser General Public License Usage
|
||||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||||
@ -21,8 +22,8 @@
|
|||||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||||
**
|
**
|
||||||
** In addition, as a special exception, Nokia gives you certain additional
|
** In addition, as a special exception, Digia gives you certain additional
|
||||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||||
**
|
**
|
||||||
** GNU General Public License Usage
|
** GNU General Public License Usage
|
||||||
@ -33,8 +34,7 @@
|
|||||||
** ensure the GNU General Public License version 3.0 requirements will be
|
** ensure the GNU General Public License version 3.0 requirements will be
|
||||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||||
**
|
**
|
||||||
** If you have questions regarding the use of this file, please contact
|
**
|
||||||
** Nokia at qt-info@nokia.com.
|
|
||||||
** $QT_END_LICENSE$
|
** $QT_END_LICENSE$
|
||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
@ -59,7 +59,10 @@
|
|||||||
|
|
||||||
#include <sqlite3.h>
|
#include <sqlite3.h>
|
||||||
|
|
||||||
|
Q_DECLARE_OPAQUE_POINTER(sqlite3*)
|
||||||
Q_DECLARE_METATYPE(sqlite3*)
|
Q_DECLARE_METATYPE(sqlite3*)
|
||||||
|
|
||||||
|
Q_DECLARE_OPAQUE_POINTER(sqlite3_stmt*)
|
||||||
Q_DECLARE_METATYPE(sqlite3_stmt*)
|
Q_DECLARE_METATYPE(sqlite3_stmt*)
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
@ -84,10 +87,14 @@ static QVariant::Type qGetColumnType(const QString &tpName)
|
|||||||
return QVariant::Int;
|
return QVariant::Int;
|
||||||
if (typeName == QLatin1String("double")
|
if (typeName == QLatin1String("double")
|
||||||
|| typeName == QLatin1String("float")
|
|| typeName == QLatin1String("float")
|
||||||
|
|| typeName == QLatin1String("real")
|
||||||
|| typeName.startsWith(QLatin1String("numeric")))
|
|| typeName.startsWith(QLatin1String("numeric")))
|
||||||
return QVariant::Double;
|
return QVariant::Double;
|
||||||
if (typeName == QLatin1String("blob"))
|
if (typeName == QLatin1String("blob"))
|
||||||
return QVariant::ByteArray;
|
return QVariant::ByteArray;
|
||||||
|
if (typeName == QLatin1String("boolean")
|
||||||
|
|| typeName == QLatin1String("bool"))
|
||||||
|
return QVariant::Bool;
|
||||||
return QVariant::String;
|
return QVariant::String;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -95,7 +102,7 @@ static QSqlError qMakeError(sqlite3 *access, const QString &descr, QSqlError::Er
|
|||||||
int errorCode = -1)
|
int errorCode = -1)
|
||||||
{
|
{
|
||||||
return QSqlError(descr,
|
return QSqlError(descr,
|
||||||
QString::fromUtf16(static_cast<const ushort *>(sqlite3_errmsg16(access))),
|
QString(reinterpret_cast<const QChar *>(sqlite3_errmsg16(access))),
|
||||||
type, errorCode);
|
type, errorCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -104,6 +111,7 @@ class QSQLiteDriverPrivate
|
|||||||
public:
|
public:
|
||||||
inline QSQLiteDriverPrivate() : access(0) {}
|
inline QSQLiteDriverPrivate() : access(0) {}
|
||||||
sqlite3 *access;
|
sqlite3 *access;
|
||||||
|
QList <QSQLiteResult *> results;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -162,19 +170,44 @@ void QSQLiteResultPrivate::initColumns(bool emptyResultset)
|
|||||||
q->init(nCols);
|
q->init(nCols);
|
||||||
|
|
||||||
for (int i = 0; i < nCols; ++i) {
|
for (int i = 0; i < nCols; ++i) {
|
||||||
QString colName = QString::fromUtf16(
|
QString colName = QString(reinterpret_cast<const QChar *>(
|
||||||
static_cast<const ushort *>(sqlite3_column_name16(stmt, i))
|
sqlite3_column_name16(stmt, i))
|
||||||
).remove(QLatin1Char('"'));
|
).remove(QLatin1Char('"'));
|
||||||
|
|
||||||
// must use typeName for resolving the type to match QSqliteDriver::record
|
// must use typeName for resolving the type to match QSqliteDriver::record
|
||||||
QString typeName = QString::fromUtf16(
|
QString typeName = QString(reinterpret_cast<const QChar *>(
|
||||||
static_cast<const ushort *>(sqlite3_column_decltype16(stmt, i)));
|
sqlite3_column_decltype16(stmt, i)));
|
||||||
|
|
||||||
int dotIdx = colName.lastIndexOf(QLatin1Char('.'));
|
|
||||||
QSqlField fld(colName.mid(dotIdx == -1 ? 0 : dotIdx + 1), qGetColumnType(typeName));
|
|
||||||
|
|
||||||
// sqlite3_column_type is documented to have undefined behavior if the result set is empty
|
// sqlite3_column_type is documented to have undefined behavior if the result set is empty
|
||||||
int stp = emptyResultset ? -1 : sqlite3_column_type(stmt, i);
|
int stp = emptyResultset ? -1 : sqlite3_column_type(stmt, i);
|
||||||
|
|
||||||
|
QVariant::Type fieldType;
|
||||||
|
|
||||||
|
if (!typeName.isEmpty()) {
|
||||||
|
fieldType = qGetColumnType(typeName);
|
||||||
|
} else {
|
||||||
|
// Get the proper type for the field based on stp value
|
||||||
|
switch (stp) {
|
||||||
|
case SQLITE_INTEGER:
|
||||||
|
fieldType = QVariant::Int;
|
||||||
|
break;
|
||||||
|
case SQLITE_FLOAT:
|
||||||
|
fieldType = QVariant::Double;
|
||||||
|
break;
|
||||||
|
case SQLITE_BLOB:
|
||||||
|
fieldType = QVariant::ByteArray;
|
||||||
|
break;
|
||||||
|
case SQLITE_TEXT:
|
||||||
|
fieldType = QVariant::String;
|
||||||
|
break;
|
||||||
|
case SQLITE_NULL:
|
||||||
|
default:
|
||||||
|
fieldType = QVariant::Invalid;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int dotIdx = colName.lastIndexOf(QLatin1Char('.'));
|
||||||
|
QSqlField fld(colName.mid(dotIdx == -1 ? 0 : dotIdx + 1), fieldType);
|
||||||
fld.setSqlType(stp);
|
fld.setSqlType(stp);
|
||||||
rInf.append(fld);
|
rInf.append(fld);
|
||||||
}
|
}
|
||||||
@ -245,9 +278,9 @@ bool QSQLiteResultPrivate::fetchNext(ClementineSqlCachedResult::ValueCache &valu
|
|||||||
values[i + idx] = QVariant(QVariant::String);
|
values[i + idx] = QVariant(QVariant::String);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
values[i + idx] = QString::fromUtf16(static_cast<const ushort *>(
|
values[i + idx] = QString(reinterpret_cast<const QChar *>(
|
||||||
sqlite3_column_text16(stmt, i)),
|
sqlite3_column_text16(stmt, i)),
|
||||||
sqlite3_column_bytes16(stmt, i) / sizeof(ushort));
|
sqlite3_column_bytes16(stmt, i) / sizeof(QChar));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -259,6 +292,7 @@ bool QSQLiteResultPrivate::fetchNext(ClementineSqlCachedResult::ValueCache &valu
|
|||||||
q->setAt(QSql::AfterLastRow);
|
q->setAt(QSql::AfterLastRow);
|
||||||
sqlite3_reset(stmt);
|
sqlite3_reset(stmt);
|
||||||
return false;
|
return false;
|
||||||
|
case SQLITE_CONSTRAINT:
|
||||||
case SQLITE_ERROR:
|
case SQLITE_ERROR:
|
||||||
// SQLITE_ERROR is a generic error code and we must call sqlite3_reset()
|
// SQLITE_ERROR is a generic error code and we must call sqlite3_reset()
|
||||||
// to get the specific error message.
|
// to get the specific error message.
|
||||||
@ -285,25 +319,22 @@ QSQLiteResult::QSQLiteResult(const QSQLiteDriver* db)
|
|||||||
{
|
{
|
||||||
d = new QSQLiteResultPrivate(this);
|
d = new QSQLiteResultPrivate(this);
|
||||||
d->access = db->d->access;
|
d->access = db->d->access;
|
||||||
|
db->d->results.append(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
QSQLiteResult::~QSQLiteResult()
|
QSQLiteResult::~QSQLiteResult()
|
||||||
{
|
{
|
||||||
|
const QSqlDriver *sqlDriver = driver();
|
||||||
|
if (sqlDriver)
|
||||||
|
qobject_cast<const QSQLiteDriver *>(sqlDriver)->d->results.removeOne(this);
|
||||||
d->cleanup();
|
d->cleanup();
|
||||||
delete d;
|
delete d;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QSQLiteResult::virtual_hook(int id, void *data)
|
void QSQLiteResult::virtual_hook(int id, void *data)
|
||||||
{
|
{
|
||||||
switch (id) {
|
|
||||||
case QSqlResult::DetachFromResultSet:
|
|
||||||
if (d->stmt)
|
|
||||||
sqlite3_reset(d->stmt);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
ClementineSqlCachedResult::virtual_hook(id, data);
|
ClementineSqlCachedResult::virtual_hook(id, data);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
bool QSQLiteResult::reset(const QString &query)
|
bool QSQLiteResult::reset(const QString &query)
|
||||||
{
|
{
|
||||||
@ -321,12 +352,14 @@ bool QSQLiteResult::prepare(const QString &query)
|
|||||||
|
|
||||||
setSelect(false);
|
setSelect(false);
|
||||||
|
|
||||||
|
const void *pzTail = NULL;
|
||||||
|
|
||||||
#if (SQLITE_VERSION_NUMBER >= 3003011)
|
#if (SQLITE_VERSION_NUMBER >= 3003011)
|
||||||
int res = sqlite3_prepare16_v2(d->access, query.constData(), (query.size() + 1) * sizeof(QChar),
|
int res = sqlite3_prepare16_v2(d->access, query.constData(), (query.size() + 1) * sizeof(QChar),
|
||||||
&d->stmt, 0);
|
&d->stmt, &pzTail);
|
||||||
#else
|
#else
|
||||||
int res = sqlite3_prepare16(d->access, query.constData(), (query.size() + 1) * sizeof(QChar),
|
int res = sqlite3_prepare16(d->access, query.constData(), (query.size() + 1) * sizeof(QChar),
|
||||||
&d->stmt, 0);
|
&d->stmt, &pzTail);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (res != SQLITE_OK) {
|
if (res != SQLITE_OK) {
|
||||||
@ -334,6 +367,11 @@ bool QSQLiteResult::prepare(const QString &query)
|
|||||||
"Unable to execute statement"), QSqlError::StatementError, res));
|
"Unable to execute statement"), QSqlError::StatementError, res));
|
||||||
d->finalize();
|
d->finalize();
|
||||||
return false;
|
return false;
|
||||||
|
} else if (pzTail && !QString(reinterpret_cast<const QChar *>(pzTail)).trimmed().isEmpty()) {
|
||||||
|
setLastError(qMakeError(d->access, QCoreApplication::translate("QSQLiteResult",
|
||||||
|
"Unable to execute multiple statements at a time"), QSqlError::StatementError, SQLITE_MISUSE));
|
||||||
|
d->finalize();
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -371,6 +409,7 @@ bool QSQLiteResult::exec()
|
|||||||
ba->size(), SQLITE_STATIC);
|
ba->size(), SQLITE_STATIC);
|
||||||
break; }
|
break; }
|
||||||
case QVariant::Int:
|
case QVariant::Int:
|
||||||
|
case QVariant::Bool:
|
||||||
res = sqlite3_bind_int(d->stmt, i + 1, value.toInt());
|
res = sqlite3_bind_int(d->stmt, i + 1, value.toInt());
|
||||||
break;
|
break;
|
||||||
case QVariant::Double:
|
case QVariant::Double:
|
||||||
@ -403,7 +442,7 @@ bool QSQLiteResult::exec()
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
setLastError(QSqlError(QCoreApplication::translate("QSQLiteResult",
|
setLastError(QSqlError(QCoreApplication::translate("QSQLiteResult",
|
||||||
"Parameter count mismatch"), QString(), QSqlError::StatementError));
|
"Parameter count mismatch") + QString::number(paramCount, 10) + "/" + QString::number(values.count(), 10), QString(), QSqlError::StatementError));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
d->skippedStatus = d->fetchNext(d->firstRow, 0, true);
|
d->skippedStatus = d->fetchNext(d->firstRow, 0, true);
|
||||||
@ -449,9 +488,15 @@ QSqlRecord QSQLiteResult::record() const
|
|||||||
return d->rInf;
|
return d->rInf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QSQLiteResult::detachFromResultSet()
|
||||||
|
{
|
||||||
|
if (d->stmt)
|
||||||
|
sqlite3_reset(d->stmt);
|
||||||
|
}
|
||||||
|
|
||||||
QVariant QSQLiteResult::handle() const
|
QVariant QSQLiteResult::handle() const
|
||||||
{
|
{
|
||||||
return qVariantFromValue(d->stmt);
|
return QVariant::fromValue(d->stmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////
|
||||||
@ -500,32 +545,6 @@ bool QSQLiteDriver::hasFeature(DriverFeature f) const
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int qGetSqliteTimeout(QString opts)
|
|
||||||
{
|
|
||||||
enum { DefaultTimeout = 5000 };
|
|
||||||
|
|
||||||
opts.remove(QLatin1Char(' '));
|
|
||||||
foreach(QString option, opts.split(QLatin1Char(';'))) {
|
|
||||||
if (option.startsWith(QLatin1String("QSQLITE_BUSY_TIMEOUT="))) {
|
|
||||||
bool ok;
|
|
||||||
int nt = option.mid(21).toInt(&ok);
|
|
||||||
if (ok)
|
|
||||||
return nt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return DefaultTimeout;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int qGetSqliteOpenMode(QString opts)
|
|
||||||
{
|
|
||||||
opts.remove(QLatin1Char(' '));
|
|
||||||
foreach(QString option, opts.split(QLatin1Char(';'))) {
|
|
||||||
if (option == QLatin1String("QSQLITE_OPEN_READONLY"))
|
|
||||||
return SQLITE_OPEN_READONLY;
|
|
||||||
}
|
|
||||||
return SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
SQLite dbs have no user name, passwords, hosts or ports.
|
SQLite dbs have no user name, passwords, hosts or ports.
|
||||||
just file names.
|
just file names.
|
||||||
@ -537,13 +556,35 @@ bool QSQLiteDriver::open(const QString & db, const QString &, const QString &, c
|
|||||||
|
|
||||||
if (db.isEmpty())
|
if (db.isEmpty())
|
||||||
return false;
|
return false;
|
||||||
|
bool sharedCache = false;
|
||||||
|
int openMode = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, timeOut=5000;
|
||||||
|
QStringList opts=QString(conOpts).remove(QLatin1Char(' ')).split(QLatin1Char(';'));
|
||||||
|
foreach(const QString &option, opts) {
|
||||||
|
if (option.startsWith(QLatin1String("QSQLITE_BUSY_TIMEOUT="))) {
|
||||||
|
bool ok;
|
||||||
|
int nt = option.mid(21).toInt(&ok);
|
||||||
|
if (ok)
|
||||||
|
timeOut = nt;
|
||||||
|
}
|
||||||
|
if (option == QLatin1String("QSQLITE_OPEN_READONLY"))
|
||||||
|
openMode = SQLITE_OPEN_READONLY;
|
||||||
|
if (option == QLatin1String("QSQLITE_ENABLE_SHARED_CACHE"))
|
||||||
|
sharedCache = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (sqlite3_open_v2(db.toUtf8().constData(), &d->access, qGetSqliteOpenMode(conOpts), NULL) == SQLITE_OK) {
|
sqlite3_enable_shared_cache(sharedCache);
|
||||||
sqlite3_busy_timeout(d->access, qGetSqliteTimeout(conOpts));
|
|
||||||
|
if (sqlite3_open_v2(db.toUtf8().constData(), &d->access, openMode, NULL) == SQLITE_OK) {
|
||||||
|
sqlite3_busy_timeout(d->access, timeOut);
|
||||||
setOpen(true);
|
setOpen(true);
|
||||||
setOpenError(false);
|
setOpenError(false);
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
|
if (d->access) {
|
||||||
|
sqlite3_close(d->access);
|
||||||
|
d->access = 0;
|
||||||
|
}
|
||||||
|
|
||||||
setLastError(qMakeError(d->access, tr("Error opening database"),
|
setLastError(qMakeError(d->access, tr("Error opening database"),
|
||||||
QSqlError::ConnectionError));
|
QSqlError::ConnectionError));
|
||||||
setOpenError(true);
|
setOpenError(true);
|
||||||
@ -554,6 +595,10 @@ bool QSQLiteDriver::open(const QString & db, const QString &, const QString &, c
|
|||||||
void QSQLiteDriver::close()
|
void QSQLiteDriver::close()
|
||||||
{
|
{
|
||||||
if (isOpen()) {
|
if (isOpen()) {
|
||||||
|
foreach (QSQLiteResult *result, d->results) {
|
||||||
|
result->d->finalize();
|
||||||
|
}
|
||||||
|
|
||||||
if (sqlite3_close(d->access) != SQLITE_OK)
|
if (sqlite3_close(d->access) != SQLITE_OK)
|
||||||
setLastError(qMakeError(d->access, tr("Error closing database"),
|
setLastError(qMakeError(d->access, tr("Error closing database"),
|
||||||
QSqlError::ConnectionError));
|
QSqlError::ConnectionError));
|
||||||
@ -705,7 +750,7 @@ QSqlRecord QSQLiteDriver::record(const QString &tbl) const
|
|||||||
|
|
||||||
QVariant QSQLiteDriver::handle() const
|
QVariant QSQLiteDriver::handle() const
|
||||||
{
|
{
|
||||||
return qVariantFromValue(d->access);
|
return QVariant::fromValue(d->access);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString QSQLiteDriver::escapeIdentifier(const QString &identifier, IdentifierType type) const
|
QString QSQLiteDriver::escapeIdentifier(const QString &identifier, IdentifierType type) const
|
||||||
|
27
3rdparty/qsqlite/qsql_sqlite.h
vendored
27
3rdparty/qsqlite/qsql_sqlite.h
vendored
@ -1,17 +1,18 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
|
** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||||
** All rights reserved.
|
** Contact: http://www.qt-project.org/legal
|
||||||
** Contact: Nokia Corporation (qt-info@nokia.com)
|
|
||||||
**
|
**
|
||||||
** This file is part of the QtSql module of the Qt Toolkit.
|
** This file is part of the QtSql module of the Qt Toolkit.
|
||||||
**
|
**
|
||||||
** $QT_BEGIN_LICENSE:LGPL$
|
** $QT_BEGIN_LICENSE:LGPL$
|
||||||
** Commercial Usage
|
** Commercial License Usage
|
||||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
** accordance with the Qt Commercial License Agreement provided with the
|
** accordance with the commercial license agreement provided with the
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
** a written agreement between you and Nokia.
|
** a written agreement between you and Digia. For licensing terms and
|
||||||
|
** conditions see http://qt.digia.com/licensing. For further information
|
||||||
|
** use the contact form at http://qt.digia.com/contact-us.
|
||||||
**
|
**
|
||||||
** GNU Lesser General Public License Usage
|
** GNU Lesser General Public License Usage
|
||||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||||
@ -21,8 +22,8 @@
|
|||||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||||
**
|
**
|
||||||
** In addition, as a special exception, Nokia gives you certain additional
|
** In addition, as a special exception, Digia gives you certain additional
|
||||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||||
**
|
**
|
||||||
** GNU General Public License Usage
|
** GNU General Public License Usage
|
||||||
@ -33,8 +34,7 @@
|
|||||||
** ensure the GNU General Public License version 3.0 requirements will be
|
** ensure the GNU General Public License version 3.0 requirements will be
|
||||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
** met: http://www.gnu.org/copyleft/gpl.html.
|
||||||
**
|
**
|
||||||
** If you have questions regarding the use of this file, please contact
|
**
|
||||||
** Nokia at qt-info@nokia.com.
|
|
||||||
** $QT_END_LICENSE$
|
** $QT_END_LICENSE$
|
||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
@ -42,8 +42,8 @@
|
|||||||
#ifndef QSQL_SQLITE_H
|
#ifndef QSQL_SQLITE_H
|
||||||
#define QSQL_SQLITE_H
|
#define QSQL_SQLITE_H
|
||||||
|
|
||||||
#include <QSqlDriver>
|
#include <QtSql/qsqldriver.h>
|
||||||
#include <QSqlResult>
|
#include <QtSql/qsqlresult.h>
|
||||||
#include "clementinesqlcachedresult.h"
|
#include "clementinesqlcachedresult.h"
|
||||||
|
|
||||||
struct sqlite3;
|
struct sqlite3;
|
||||||
@ -79,6 +79,7 @@ protected:
|
|||||||
int numRowsAffected();
|
int numRowsAffected();
|
||||||
QVariant lastInsertId() const;
|
QVariant lastInsertId() const;
|
||||||
QSqlRecord record() const;
|
QSqlRecord record() const;
|
||||||
|
void detachFromResultSet();
|
||||||
void virtual_hook(int id, void *data);
|
void virtual_hook(int id, void *data);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
3
3rdparty/qsqlite/qsqlite.json
vendored
Normal file
3
3rdparty/qsqlite/qsqlite.json
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"Keys": [ "QSQLITE" ]
|
||||||
|
}
|
65
3rdparty/qsqlite/smain.cpp
vendored
65
3rdparty/qsqlite/smain.cpp
vendored
@ -1,59 +1,40 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
**
|
**
|
||||||
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
|
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
|
||||||
** All rights reserved.
|
** Contact: http://www.qt-project.org/legal
|
||||||
** Contact: Nokia Corporation (qt-info@nokia.com)
|
|
||||||
**
|
**
|
||||||
** This file is part of the plugins of the Qt Toolkit.
|
** This file is part of the plugins of the Qt Toolkit.
|
||||||
**
|
**
|
||||||
** $QT_BEGIN_LICENSE:LGPL$
|
** $QT_BEGIN_LICENSE:LGPL21$
|
||||||
** Commercial Usage
|
** Commercial License Usage
|
||||||
** Licensees holding valid Qt Commercial licenses may use this file in
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
** accordance with the Qt Commercial License Agreement provided with the
|
** accordance with the commercial license agreement provided with the
|
||||||
** Software or, alternatively, in accordance with the terms contained in
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
** a written agreement between you and Nokia.
|
** a written agreement between you and Digia. For licensing terms and
|
||||||
|
** conditions see http://qt.digia.com/licensing. For further information
|
||||||
|
** use the contact form at http://qt.digia.com/contact-us.
|
||||||
**
|
**
|
||||||
** GNU Lesser General Public License Usage
|
** GNU Lesser General Public License Usage
|
||||||
** Alternatively, this file may be used under the terms of the GNU Lesser
|
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||||
** General Public License version 2.1 as published by the Free Software
|
** General Public License version 2.1 or version 3 as published by the Free
|
||||||
** Foundation and appearing in the file LICENSE.LGPL included in the
|
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
|
||||||
** packaging of this file. Please review the following information to
|
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
|
||||||
** ensure the GNU Lesser General Public License version 2.1 requirements
|
** following information to ensure the GNU Lesser General Public License
|
||||||
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
|
||||||
|
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||||
**
|
**
|
||||||
** In addition, as a special exception, Nokia gives you certain additional
|
** In addition, as a special exception, Digia gives you certain additional
|
||||||
** rights. These rights are described in the Nokia Qt LGPL Exception
|
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||||
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||||
**
|
**
|
||||||
** GNU General Public License Usage
|
|
||||||
** Alternatively, this file may be used under the terms of the GNU
|
|
||||||
** General Public License version 3.0 as published by the Free Software
|
|
||||||
** Foundation and appearing in the file LICENSE.GPL included in the
|
|
||||||
** packaging of this file. Please review the following information to
|
|
||||||
** ensure the GNU General Public License version 3.0 requirements will be
|
|
||||||
** met: http://www.gnu.org/copyleft/gpl.html.
|
|
||||||
**
|
|
||||||
** If you have questions regarding the use of this file, please contact
|
|
||||||
** Nokia at qt-info@nokia.com.
|
|
||||||
** $QT_END_LICENSE$
|
** $QT_END_LICENSE$
|
||||||
**
|
**
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#include <qsqldriverplugin.h>
|
#include "smain.h"
|
||||||
#include <qstringlist.h>
|
|
||||||
#include "qsql_sqlite.h"
|
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
class QSQLiteDriverPlugin : public QSqlDriverPlugin
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
QSQLiteDriverPlugin();
|
|
||||||
|
|
||||||
QSqlDriver* create(const QString &);
|
|
||||||
QStringList keys() const;
|
|
||||||
};
|
|
||||||
|
|
||||||
QSQLiteDriverPlugin::QSQLiteDriverPlugin()
|
QSQLiteDriverPlugin::QSQLiteDriverPlugin()
|
||||||
: QSqlDriverPlugin()
|
: QSqlDriverPlugin()
|
||||||
{
|
{
|
||||||
@ -68,14 +49,4 @@ QSqlDriver* QSQLiteDriverPlugin::create(const QString &name)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
QStringList QSQLiteDriverPlugin::keys() const
|
|
||||||
{
|
|
||||||
QStringList l;
|
|
||||||
l << QLatin1String("QSQLITE");
|
|
||||||
return l;
|
|
||||||
}
|
|
||||||
|
|
||||||
Q_EXPORT_STATIC_PLUGIN(QSQLiteDriverPlugin)
|
|
||||||
Q_EXPORT_PLUGIN2(qsqlite, QSQLiteDriverPlugin)
|
|
||||||
|
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
|
51
3rdparty/qsqlite/smain.h
vendored
Normal file
51
3rdparty/qsqlite/smain.h
vendored
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies).
|
||||||
|
** Contact: http://www.qt-project.org/legal
|
||||||
|
**
|
||||||
|
** This file is part of the plugins of the Qt Toolkit.
|
||||||
|
**
|
||||||
|
** $QT_BEGIN_LICENSE:LGPL21$
|
||||||
|
** Commercial License Usage
|
||||||
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||||||
|
** accordance with the commercial license agreement provided with the
|
||||||
|
** Software or, alternatively, in accordance with the terms contained in
|
||||||
|
** a written agreement between you and Digia. For licensing terms and
|
||||||
|
** conditions see http://qt.digia.com/licensing. For further information
|
||||||
|
** use the contact form at http://qt.digia.com/contact-us.
|
||||||
|
**
|
||||||
|
** GNU Lesser General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||||||
|
** General Public License version 2.1 or version 3 as published by the Free
|
||||||
|
** Software Foundation and appearing in the file LICENSE.LGPLv21 and
|
||||||
|
** LICENSE.LGPLv3 included in the packaging of this file. Please review the
|
||||||
|
** following information to ensure the GNU Lesser General Public License
|
||||||
|
** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
|
||||||
|
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||||
|
**
|
||||||
|
** In addition, as a special exception, Digia gives you certain additional
|
||||||
|
** rights. These rights are described in the Digia Qt LGPL Exception
|
||||||
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||||
|
**
|
||||||
|
** $QT_END_LICENSE$
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include <qsqldriverplugin.h>
|
||||||
|
#include <qstringlist.h>
|
||||||
|
#include "qsql_sqlite.h"
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
|
class QSQLiteDriverPlugin : public QSqlDriverPlugin
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QSqlDriverFactoryInterface" FILE "qsqlite.json")
|
||||||
|
|
||||||
|
public:
|
||||||
|
QSQLiteDriverPlugin();
|
||||||
|
|
||||||
|
QSqlDriver* create(const QString &);
|
||||||
|
};
|
||||||
|
|
||||||
|
QT_END_NAMESPACE
|
11
3rdparty/qsqlite/smain.patch
vendored
11
3rdparty/qsqlite/smain.patch
vendored
@ -1,11 +0,0 @@
|
|||||||
--- smain.cpp.old 2010-03-22 17:34:03.000000000 +0000
|
|
||||||
+++ smain.cpp 2010-03-22 17:34:08.000000000 +0000
|
|
||||||
@@ -41,7 +41,7 @@
|
|
||||||
|
|
||||||
#include <qsqldriverplugin.h>
|
|
||||||
#include <qstringlist.h>
|
|
||||||
-#include "../../../../src/sql/drivers/sqlite/qsql_sqlite.h"
|
|
||||||
+#include "qsql_sqlite.h"
|
|
||||||
|
|
||||||
QT_BEGIN_NAMESPACE
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user