[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    koffice/kexi/kexidb/drivers
From:       Adam Pigg <adam () piggz ! co ! uk>
Date:       2010-01-29 20:48:30
Message-ID: 1264798110.230997.13040.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1082151 by piggz:

Make the sqlite driver use the system install libsqlite3.
Added an initial version check for 3.6.20...feel free to change
Still some TODOs for some commented out sections.
CCMAIL: staniek@kde.org

 M  +8 -2      CMakeLists.txt  
 M  +2 -2      sqlite/CMakeLists.txt  
 M  +15 -8     sqlite/sqliteconnection.cpp  
 M  +1 -1      sqlite/sqliteconnection_p.h  
 M  +1 -1      sqlite/sqlitedriver.cpp  


--- trunk/koffice/kexi/kexidb/drivers/CMakeLists.txt #1082150:1082151
@@ -2,8 +2,14 @@
 # drivers will be moved out of this dir in Predicate, and then area will be \
redefined  #remove_definitions(-DKDE_DEFAULT_DEBUG_AREA)
 #add_definitions(-DKDE_DEFAULT_DEBUG_AREA=44001)
+INCLUDE (FindPkgConfig)
 
-add_subdirectory( sqlite )
+pkg_check_modules (SQLITE3 REQUIRED sqlite3>=3.6.20)
+
+IF (SQLITE3_FOUND)
+  add_subdirectory( sqlite )
+ENDIF (SQLITE3_FOUND)
+
 #ancient add_subdirectory( sqlite2 )
 
 INCLUDE (FindMySQL)
@@ -11,7 +17,7 @@
    add_subdirectory( mySQL )
 ENDIF (MYSQL_FOUND)
 
-INCLUDE (FindPkgConfig)
+
 INCLUDE (FindPostgreSQL)
 
 set (PQXX_MIN_VERSION "3.0.0")
--- trunk/koffice/kexi/kexidb/drivers/sqlite/CMakeLists.txt #1082150:1082151
@@ -1,6 +1,6 @@
 
 
-include_directories( ${CMAKE_SOURCE_DIR}/kexi/3rdparty/kexisql3/src \
${CMAKE_SOURCE_DIR}/kexi ${CMAKE_SOURCE_DIR}/kexi/kexidb ${KDE4_INCLUDES}  ) \
+include_directories( ${CMAKE_SOURCE_DIR}/kexi ${CMAKE_SOURCE_DIR}/kexi/kexidb \
${KDE4_INCLUDES}  )  
 ADD_DEFINITIONS( -D__KEXIDB__= )
 
@@ -22,7 +22,7 @@
 
 
 
-target_link_libraries(kexidb_sqlite3driver ${QT_QT3SUPPORT_LIBRARY} \
${KDE4_KPARTS_LIBS} kexisql3 kexidb kexiutils ) \
+target_link_libraries(kexidb_sqlite3driver ${QT_QT3SUPPORT_LIBRARY} \
${KDE4_KPARTS_LIBS} sqlite3 kexidb kexiutils )  
 install(TARGETS kexidb_sqlite3driver  DESTINATION ${PLUGIN_INSTALL_DIR})
 
--- trunk/koffice/kexi/kexidb/drivers/sqlite/sqliteconnection.cpp #1082150:1082151
@@ -22,9 +22,9 @@
 #include "sqlitecursor.h"
 #include "sqlitepreparedstatement.h"
 
-#include "sqlite.h"
+#include "sqlite3.h"
 
-#include "kexisql.h" //for isReadOnly()
+//#include "kexisql.h" //for isReadOnly()
 
 #include <kexidb/driver.h>
 #include <kexidb/cursor.h>
@@ -166,17 +166,19 @@
 // KexiDBDrvDbg << "drv_useDatabase(): " << data()->fileName();
     //TODO: perhaps allow to use sqlite3_open16() as well for SQLite ~ 3.3 ?
 //! @todo add option (command line or in kexirc?)
-    int exclusiveFlag = Connection::isReadOnly() ? SQLITE_OPEN_READONLY : \
SQLITE_OPEN_WRITE_LOCKED; // <-- shared read + (if !r/o): exclusive write +//!TODO    \
int exclusiveFlag = Connection::isReadOnly() ? SQLITE_OPEN_READONLY : \
SQLITE_OPEN_WRITE_LOCKED; // <-- shared read + (if !r/o): exclusive write +int \
exclusiveFlag = 1;  //! @todo add option
     int allowReadonly = 1;
     const bool wasReadOnly = Connection::isReadOnly();
 
-    d->res = sqlite3_open(
+    d->res = sqlite3_open_v2(
                  //QFile::encodeName( data()->fileName() ),
                  data()->fileName().toUtf8().constData(), /* unicode expected since \
SQLite 3.1 */  &d->data,
-                 exclusiveFlag,
-                 allowReadonly /* If 1 and locking fails, try opening in read-only \
mode */ +                 SQLITE_OPEN_READWRITE, /*exclusiveFlag,
+                 allowReadonly *//* If 1 and locking fails, try opening in read-only \
mode */ +                 0
              );
     d->storeResult();
 
@@ -199,7 +201,8 @@
             return false;
         }
     }
-
+//!TODO
+/*
     if (d->res == SQLITE_CANTOPEN_WITH_LOCKED_READWRITE) {
         setError(ERR_ACCESS_RIGHTS,
                  i18n("The file is probably already open on this or another \
computer.") + "\n\n" @@ -211,6 +214,7 @@
                  + i18n("Could not gain exclusive access for writing the file.") + " \
                "
                  + i18n("Check the file's permissions and whether it is already \
opened and locked by another application."));  }
+    */
     return d->res == SQLITE_OK;
 }
 
@@ -357,8 +361,11 @@
 
 bool SQLiteConnection::isReadOnly() const
 {
+    //!TODO
+   /* 
     return (d->data ? sqlite3_is_readonly(d->data) : false)
-           || Connection::isReadOnly();
+           || Connection::isReadOnly();*/
+           return false;
 }
 
 #include "sqliteconnection.moc"
--- trunk/koffice/kexi/kexidb/drivers/sqlite/sqliteconnection_p.h #1082150:1082151
@@ -22,7 +22,7 @@
 
 #include <kexidb/connection_p.h>
 
-#include "sqlite.h"
+#include "sqlite3.h"
 
 //for compatibility
 #ifdef _SQLITE3_H_
--- trunk/koffice/kexi/kexidb/drivers/sqlite/sqlitedriver.cpp #1082150:1082151
@@ -22,7 +22,7 @@
 #include <kexidb/driver_p.h>
 #include <kexidb/utils.h>
 
-#include "sqlite.h"
+#include "sqlite3.h"
 #include "sqlitedriver.h"
 #include "sqliteconnection.h"
 #include "sqliteconnection_p.h"


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic