Added support to directly connect also to SQLite 2 db file

This commit is contained in:
Bernardo Damele 2010-04-13 22:43:38 +00:00
parent fee062781f
commit 1ab78ce60e
2 changed files with 12 additions and 4 deletions

View File

@ -643,7 +643,7 @@ def parseTargetDirect():
"MySQL": [MYSQL_ALIASES, "python-mysqldb", "http://mysql-python.sourceforge.net/"],
"PostgreSQL": [PGSQL_ALIASES, "python-psycopg2", "http://initd.org/psycopg/"],
"Oracle": [ORACLE_ALIASES, "python cx_Oracle", "http://cx-oracle.sourceforge.net/"],
"SQLite": [SQLITE_ALIASES, "python-pysqlite2", "http://pysqlite.googlecode.com/"],
"SQLite": [SQLITE_ALIASES, "python-pysqlite2 and python-sqlite", "http://pysqlite.googlecode.com/"],
"Access": [ACCESS_ALIASES, "python-pyodbc", "http://pyodbc.googlecode.com/"],
"Firebird": [FIREBIRD_ALIASES, "python-kinterbasdb", "http://kinterbasdb.sourceforge.net/"] }
@ -679,6 +679,7 @@ def parseTargetDirect():
elif dbmsName == "Oracle":
import cx_Oracle
elif dbmsName == "SQLite":
import sqlite
import sqlite3
elif dbmsName == "Access":
import pyodbc

View File

@ -23,6 +23,7 @@ Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
"""
try:
import sqlite
import sqlite3
except ImportError, _:
pass
@ -51,9 +52,15 @@ class Connector(GenericConnector):
self.initConnection()
self.checkFileDb()
try:
self.connector = sqlite.connect(database=self.db, check_same_thread=False, timeout=conf.timeout)
except (sqlite.DatabaseError, sqlite.OperationalError), _:
errMsg = "unable to connect using SQLite 2 library, trying with SQLite 3"
logger.error(errMsg)
try:
self.connector = sqlite3.connect(database=self.db, check_same_thread=False, timeout=conf.timeout)
except sqlite3.OperationalError, msg:
except (sqlite.DatabaseError, sqlite.OperationalError), msg:
raise sqlmapConnectionException, msg[0]
self.setCursor()