[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
r5577 - in trunk/gnue-common/src/datasources: . drivers/DBSIG2 drivers/a
From: |
reinhard |
Subject: |
r5577 - in trunk/gnue-common/src/datasources: . drivers/DBSIG2 drivers/adodbapi/adodbapi drivers/db2/db2 drivers/dbf/dbf drivers/gadfly/gadfly drivers/informix/informix drivers/ingres/ingres drivers/interbase/interbase drivers/ldap drivers/mysql/mysql drivers/odbc/wodbc drivers/oracle/cxoracle drivers/oracle/dcoracle drivers/postgresql/popy drivers/postgresql/psycopg drivers/postgresql/pygresql drivers/postgresql/pypgsql drivers/sapdb/sapdb drivers/sqlite/sqlite drivers/sqlrelay/sqlrelay drivers/sybase/sybase |
Date: |
Tue, 30 Mar 2004 13:25:37 -0600 (CST) |
Author: reinhard
Date: 2004-03-30 13:25:36 -0600 (Tue, 30 Mar 2004)
New Revision: 5577
Modified:
trunk/gnue-common/src/datasources/Exceptions.py
trunk/gnue-common/src/datasources/GConnections.py
trunk/gnue-common/src/datasources/drivers/DBSIG2/__init__.py
trunk/gnue-common/src/datasources/drivers/adodbapi/adodbapi/Connection.py
trunk/gnue-common/src/datasources/drivers/db2/db2/Connection.py
trunk/gnue-common/src/datasources/drivers/dbf/dbf/Connection.py
trunk/gnue-common/src/datasources/drivers/gadfly/gadfly/Connection.py
trunk/gnue-common/src/datasources/drivers/informix/informix/Connection.py
trunk/gnue-common/src/datasources/drivers/ingres/ingres/Connection.py
trunk/gnue-common/src/datasources/drivers/interbase/interbase/Connection.py
trunk/gnue-common/src/datasources/drivers/ldap/Driver.py
trunk/gnue-common/src/datasources/drivers/mysql/mysql/Connection.py
trunk/gnue-common/src/datasources/drivers/odbc/wodbc/Connection.py
trunk/gnue-common/src/datasources/drivers/oracle/cxoracle/Driver.py
trunk/gnue-common/src/datasources/drivers/oracle/dcoracle/Driver.py
trunk/gnue-common/src/datasources/drivers/postgresql/popy/Driver.py
trunk/gnue-common/src/datasources/drivers/postgresql/psycopg/Driver.py
trunk/gnue-common/src/datasources/drivers/postgresql/pygresql/Driver.py
trunk/gnue-common/src/datasources/drivers/postgresql/pypgsql/Driver.py
trunk/gnue-common/src/datasources/drivers/sapdb/sapdb/Connection.py
trunk/gnue-common/src/datasources/drivers/sqlite/sqlite/Connection.py
trunk/gnue-common/src/datasources/drivers/sqlrelay/sqlrelay/Connection.py
trunk/gnue-common/src/datasources/drivers/sybase/sybase/Connection.py
Log:
Use same exception in all drivers to indicate missing dependency.
Modified: trunk/gnue-common/src/datasources/Exceptions.py
===================================================================
--- trunk/gnue-common/src/datasources/Exceptions.py 2004-03-30 18:30:01 UTC
(rev 5576)
+++ trunk/gnue-common/src/datasources/Exceptions.py 2004-03-30 19:25:36 UTC
(rev 5577)
@@ -28,7 +28,7 @@
# NOTES:
#
-class Error(StandardError):
+class Error(gException):
# Base exception
pass
Modified: trunk/gnue-common/src/datasources/GConnections.py
===================================================================
--- trunk/gnue-common/src/datasources/GConnections.py 2004-03-30 18:30:01 UTC
(rev 5576)
+++ trunk/gnue-common/src/datasources/GConnections.py 2004-03-30 19:25:36 UTC
(rev 5577)
@@ -45,7 +45,7 @@
from gnue.common.utils.FileUtils import openResource, dyn_import
import GLoginHandler
-class Error(StandardError):
+class Error(gException):
# Base error
pass
@@ -59,6 +59,16 @@
# the python libraries are not installed.
pass
+class DependencyError (Error):
+ # Raised by the dbdrivers if a dependency module is missing
+ def __init__ (self, modulename, url):
+ self.modulename = modulename
+ self.url = url
+ message = u_("Module '%s' is not installed.") % self.modulename
+ if self.url:
+ message += u_(" You can download it from %s.") % self.url
+ Error.__init__ (self, message)
+
class InvalidFormatError (Error):
# Raised if the Connections Definition File is
# in an unreadable format.
Modified: trunk/gnue-common/src/datasources/drivers/DBSIG2/__init__.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/DBSIG2/__init__.py
2004-03-30 18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/DBSIG2/__init__.py
2004-03-30 19:25:36 UTC (rev 5577)
@@ -19,6 +19,9 @@
# Copyright 2000-2004 Free Software Foundation
#
+# Indicate that this is no plugin
+__noplugin__ = True
+
from Connection import *
from DataObject import *
from ResultSet import *
Modified:
trunk/gnue-common/src/datasources/drivers/adodbapi/adodbapi/Connection.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/adodbapi/adodbapi/Connection.py
2004-03-30 18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/adodbapi/adodbapi/Connection.py
2004-03-30 19:25:36 UTC (rev 5577)
@@ -38,20 +38,18 @@
from gnue.common.apps import GDebug
from gnue.common.datasources.drivers import DBSIG2
from DataObject import *
-from gnue.common.datasources.drivers.adodbapi.Schema.Discovery.Introspection
import Introspection
try:
import adodbapi as SIG2api
-except ImportError, message:
- tmsg = _("Driver not installed: adodbapi driver\n\n[%s]") % message
- raise GConnections.AdapterNotInstalled, tmsg
+except ImportError:
+ raise GConnections.DependencyError, ('adodbapi', None)
try:
import win32com
-except ImportError, message:
- tmsg = _("Driver not installed: win32com driver\n\n[%s") % message
- raise GConnections.AdapterNotInstalled, tmsg
+except ImportError:
+ raise GConnections.DependencyError, ('win32com', None)
+from gnue.common.datasources.drivers.adodbapi.Schema.Discovery.Introspection
import Introspection
class Connection(DBSIG2.Connection):
defaultBehavior = Introspection
Modified: trunk/gnue-common/src/datasources/drivers/db2/db2/Connection.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/db2/db2/Connection.py
2004-03-30 18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/db2/db2/Connection.py
2004-03-30 19:25:36 UTC (rev 5577)
@@ -38,19 +38,17 @@
import sys
from string import lower
-# from gnue.forms import GFOptions
-from gnue.forms.GFError import DBError
from gnue.common.apps import GDebug
from gnue.common.datasources import GDataObjects
+from gnue.common.datasources import GConnections
from gnue.common.datasources.drivers import DBSIG2
try:
import DB2
-except ImportError, message:
- tmsg = _("Driver not installed: db2 for DB2 [%s]") % message
- raise GConnections.AdapterNotInstalled, tmsg
+except ImportError:
+ raise GConnections.DependencyError, ('db2', None)
-from gnue.common.datasources.drivers.sqlite.Schema.Discovery.Introspection
import Introspection
+from gnue.common.datasources.drivers.db2.Schema.Discovery.Introspection import
Introspection
class Connection(DBSIG2.DataObject):
_driver = DB2
Modified: trunk/gnue-common/src/datasources/drivers/dbf/dbf/Connection.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/dbf/dbf/Connection.py
2004-03-30 18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/dbf/dbf/Connection.py
2004-03-30 19:25:36 UTC (rev 5577)
@@ -36,10 +36,15 @@
#### ####
from gnue.common.datasources.GDataObjects import Error
-from gnue.common.datasource import GConnection
-import dbf
+from gnue.common.datasources.drivers import Base
+from gnue.common.datasources import GConnections
-class Connection(GConnection.Connection):
+try:
+ import dbf
+except ImportError:
+ raise GConnections.DependencyError, ('dbf', None)
+
+class Connection(Base.Connection):
supportedDataObjects = {'object': DataObject,
'static': DataObject} # TODO: Why static?!?
_DatabaseError = Error
Modified: trunk/gnue-common/src/datasources/drivers/gadfly/gadfly/Connection.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/gadfly/gadfly/Connection.py
2004-03-30 18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/gadfly/gadfly/Connection.py
2004-03-30 19:25:36 UTC (rev 5577)
@@ -39,17 +39,15 @@
import string
import sys
from gnue.common.apps import GDebug
-from gnue.common.datasources import GDataObjects
+from gnue.common.datasources import GDataObjects, GConnections
from gnue.common.datasources.drivers import DBSIG2
try:
import gadfly
-except ImportError, message:
- tmsg = _("Driver not installed: gadfly driver\n\n[%s") % message
- raise GConnections.AdapterNotInstalled, tmsg
+except ImportError:
+ raise GConnections.DependencyError, ('gadfly', None)
-
##### EVIL HACK
class Error(StandardError):
"""Generic Error"""
Modified:
trunk/gnue-common/src/datasources/drivers/informix/informix/Connection.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/informix/informix/Connection.py
2004-03-30 18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/informix/informix/Connection.py
2004-03-30 19:25:36 UTC (rev 5577)
@@ -47,12 +47,10 @@
try:
import informixdb as SIG2api
-except ImportError, message:
- tmsg = _("Driver not installed: Kinfxdb for Informix [%s]") % message
- raise GConnections.AdapterNotInstalled, tmsg
+except ImportError:
+ raise GConnections.DependencyError, ('Kinfxdb', None)
-
class Connection(DBSIG2.Connection):
_driver = SIG2api
Modified: trunk/gnue-common/src/datasources/drivers/ingres/ingres/Connection.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/ingres/ingres/Connection.py
2004-03-30 18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/ingres/ingres/Connection.py
2004-03-30 19:25:36 UTC (rev 5577)
@@ -45,16 +45,14 @@
from gnue.common.datasources import GDataObjects, GConditions
from gnue.common.apps import GDebug
from gnue.common.datasources.drivers import DBSIG2
-from DataObjects import *
+from DataObject import *
try:
import ingmod as SIG2api
-except ImportError, message:
- tmsg = _("Driver not installed: ingmod for Ingres/Ingres II/OpenIngres
[%s]") % message
- raise GConnections.AdapterNotInstalled, tmsg
+except ImportError:
+ raise GConnections.DependencyError, ('ingmod', None)
-
class Connection(DBSIG2.Connection):
_driver = SIG2api
_DatabaseError = SIG2api.DatabaseError
Modified:
trunk/gnue-common/src/datasources/drivers/interbase/interbase/Connection.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/interbase/interbase/Connection.py
2004-03-30 18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/interbase/interbase/Connection.py
2004-03-30 19:25:36 UTC (rev 5577)
@@ -51,9 +51,8 @@
try:
import kinterbasdb as SIG2api
-except ImportError, message:
- tmsg = _("Driver not installed: Kinterbasdb for Interbase [%s]") % message
- raise GConnections.AdapterNotInstalled, tmsg
+except ImportError:
+ raise GConnections.DependencyError, ('Kinterbasdb', None)
######################################################################
Modified: trunk/gnue-common/src/datasources/drivers/ldap/Driver.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/ldap/Driver.py 2004-03-30
18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/ldap/Driver.py 2004-03-30
19:25:36 UTC (rev 5577)
@@ -42,7 +42,7 @@
try:
from gnue.common.apps import GDebug
- from gnue.common.datasources import GDataObjects, GConditions
+ from gnue.common.datasources import GDataObjects, GConditions, GConnections
except:
from gnue.common import GDebug,GDataObjects,GConditions
@@ -54,10 +54,8 @@
try:
import ldap
except ImportError:
- print """
-to use the ldap/DBdriver you need the LDAP module for Python
-from http://python-ldap.sourceforge.net/
-"""
+ raise GConnections.DependencyError, ('python-ldap',
+ 'http://python-ldap.sourceforge.net/')
## TODO: add an option to parse multiple entries
Modified: trunk/gnue-common/src/datasources/drivers/mysql/mysql/Connection.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/mysql/mysql/Connection.py
2004-03-30 18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/mysql/mysql/Connection.py
2004-03-30 19:25:36 UTC (rev 5577)
@@ -42,14 +42,10 @@
try:
import MySQLdb
-except ImportError, message:
- tmsg = _("\nCould not load MySQLdb. For MySQL support, please install \n") \
- + _("mysql-python 0.9.0 or later from") \
- + "http://sourceforge.net/projects/mysql-python\n" \
- + _("[Error: %s]") % message
+except ImportError:
+ raise GConnections.DependencyError ('mysql-python',
+ 'http://sourceforge.net/projects/mysql-python')
- raise GConnections.AdapterNotInstalled, tmsg
-
from gnue.common.datasources.drivers import DBSIG2
from DataObject import *
from gnue.common.datasources.drivers.mysql.Schema.Discovery.Introspection
import Introspection
Modified: trunk/gnue-common/src/datasources/drivers/odbc/wodbc/Connection.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/odbc/wodbc/Connection.py
2004-03-30 18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/odbc/wodbc/Connection.py
2004-03-30 19:25:36 UTC (rev 5577)
@@ -48,13 +48,10 @@
try:
import dbi, odbc
-except ImportError, message:
- tmsg = _("Driver not installed: win32all ODBC driver\n\n[%s") % message
- raise GConnections.AdapterNotInstalled, tmsg
+except ImportError:
+ raise GConnections.DependencyError, ('win32all ODBC driver', None)
-
-
class ODBC_RecordSet(GDataObjects.RecordSet):
def _postChanges(self):
if not self.isPending(): return
Modified: trunk/gnue-common/src/datasources/drivers/oracle/cxoracle/Driver.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/oracle/cxoracle/Driver.py
2004-03-30 18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/oracle/cxoracle/Driver.py
2004-03-30 19:25:36 UTC (rev 5577)
@@ -27,14 +27,13 @@
#
-from gnue.common.datasources import Exceptions
+from gnue.common.datasources import GConnections
from gnue.common.datasources.drivers.oracle import Base
try:
import cx_Oracle as SIG2api
-except ImportError, message:
- tmsg = _("Driver not installed: cx_Oracle for Oracle 8.x [%s]") % message
- raise Exceptions.AdapterNotInstalled, tmsg
+except ImportError:
+ raise GConnections.DependencyError, ('cx_Oracle', None)
class Connection(Base.Connection):
_driver = SIG2api
Modified: trunk/gnue-common/src/datasources/drivers/oracle/dcoracle/Driver.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/oracle/dcoracle/Driver.py
2004-03-30 18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/oracle/dcoracle/Driver.py
2004-03-30 19:25:36 UTC (rev 5577)
@@ -27,14 +27,13 @@
#
-from gnue.common.datasources import Exceptions
+from gnue.common.datasources import GConnections
from gnue.common.datasources.drivers.oracle import Base
try:
import DCOracle2 as SIG2api
-except ImportError, message:
- tmsg = _("Driver not installed: DCOracle2 [%s]") % message
- raise GConnections.AdapterNotInstalled, tmsg
+except ImportError:
+ raise GConnections.DependencyError ('DCOracle2', None)
class Connection(Base.Connection):
_driver = SIG2api
Modified: trunk/gnue-common/src/datasources/drivers/postgresql/popy/Driver.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/postgresql/popy/Driver.py
2004-03-30 18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/postgresql/popy/Driver.py
2004-03-30 19:25:36 UTC (rev 5577)
@@ -31,7 +31,12 @@
__all__ = ('Connection')
from gnue.common.datasources.drivers.postgresql import Base
-import PoPy
+from gnue.common.datasources import GConnections
+try:
+ import PoPy
+except ImportError:
+ raise GConnections.DependencyError, ('PoPy', None)
+
class Connection(Base.Connection):
_driver = PoPy
Modified: trunk/gnue-common/src/datasources/drivers/postgresql/psycopg/Driver.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/postgresql/psycopg/Driver.py
2004-03-30 18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/postgresql/psycopg/Driver.py
2004-03-30 19:25:36 UTC (rev 5577)
@@ -31,7 +31,12 @@
__all__ = ('Connection')
from gnue.common.datasources.drivers.postgresql import Base
-import psycopg
+from gnue.common.datasources import GConnections
+try:
+ import psycopg
+except:
+ raise GConnections.DependencyError, ('psycopg', None)
+
class Connection(Base.Connection):
_driver = psycopg
Modified:
trunk/gnue-common/src/datasources/drivers/postgresql/pygresql/Driver.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/postgresql/pygresql/Driver.py
2004-03-30 18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/postgresql/pygresql/Driver.py
2004-03-30 19:25:36 UTC (rev 5577)
@@ -36,9 +36,8 @@
try:
import pgdb
from _pg import error as PGError # This is so we can catch login errors
-except ImportError, message:
- tmsg = _("Driver not installed: pygresql for PostgreSQL [%s]") % message
- raise GConnections.AdapterNotInstalled, tmsg
+except ImportError:
+ raise GConnections.DependencyError, ('pygresql', None)
from gnue.common.datasources.drivers.postgresql import Base
Modified: trunk/gnue-common/src/datasources/drivers/postgresql/pypgsql/Driver.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/postgresql/pypgsql/Driver.py
2004-03-30 18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/postgresql/pypgsql/Driver.py
2004-03-30 19:25:36 UTC (rev 5577)
@@ -36,10 +36,13 @@
from gnue.common.datasources.drivers.postgresql import Base
try:
- from pyPgSQL import PgSQL # pyPgSQL 2.0 support
-except ImportError:
- # TODO: Re-evaluate the minimum version we support!
- import PgSQL # pyPgSQL 1.6 support
+ try:
+ from pyPgSQL import PgSQL # pyPgSQL 2.0 support
+ except ImportError:
+ # TODO: Re-evaluate the minimum version we support!
+ import PgSQL # pyPgSQL 1.6 support
+except:
+ raise GConnections.DependencyError, ('pyPgSQL', None)
Modified: trunk/gnue-common/src/datasources/drivers/sapdb/sapdb/Connection.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/sapdb/sapdb/Connection.py
2004-03-30 18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/sapdb/sapdb/Connection.py
2004-03-30 19:25:36 UTC (rev 5577)
@@ -52,9 +52,8 @@
try:
import sapdbapi as SIG2api
-except ImportError, message:
- tmsg = _("Driver not installed: sapdbapi for MaxDB/SAP-DB 7.x \n[%s]") %
message
- raise GConnections.AdapterNotInstalled, tmsg
+except ImportError:
+ raise GConnections.DependencyError, ('sapdbapi', None)
from gnue.common.datasources.drivers.sapdb.Schema.Discovery.Introspection
import Introspection
Modified: trunk/gnue-common/src/datasources/drivers/sqlite/sqlite/Connection.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/sqlite/sqlite/Connection.py
2004-03-30 18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/sqlite/sqlite/Connection.py
2004-03-30 19:25:36 UTC (rev 5577)
@@ -47,9 +47,8 @@
try:
import sqlite as SIG2api
-except ImportError, message:
- tmsg = _("Driver not installed: SQLitedbapi for SQLite 7.x \n[%s]") % message
- raise GConnections.AdapterNotInstalled, tmsg
+except ImportError:
+ raise GConnections.DependencyError, ('SQLitedbapi', None)
from gnue.common.datasources.drivers.sqlite.Schema.Discovery.Introspection
import Introspection
Modified:
trunk/gnue-common/src/datasources/drivers/sqlrelay/sqlrelay/Connection.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/sqlrelay/sqlrelay/Connection.py
2004-03-30 18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/sqlrelay/sqlrelay/Connection.py
2004-03-30 19:25:36 UTC (rev 5577)
@@ -49,9 +49,8 @@
try:
from SQLRelay import PySQLRDB as SIG2api
-except ImportError, message:
- tmsg = _("Driver not installed: SQLRelay Python API\n[%s]") % message
- raise GConnections.AdapterNotInstalled, tmsg
+except ImportError:
+ raise GConnections.DependencyError, ('SQLRelay', None)
from gnue.common.datasources.drivers.sqlrelay.Schema.Discovery.Introspection
import Introspection
Modified: trunk/gnue-common/src/datasources/drivers/sybase/sybase/Connection.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/sybase/sybase/Connection.py
2004-03-30 18:30:01 UTC (rev 5576)
+++ trunk/gnue-common/src/datasources/drivers/sybase/sybase/Connection.py
2004-03-30 19:25:36 UTC (rev 5577)
@@ -45,13 +45,12 @@
from gnue.common.datasources import GDataObjects, GConditions, GConnections
from gnue.common.apps import GDebug
from gnue.common.datasources.drivers import DBSIG2
-from DataObjects import *
+from DataObject import *
try:
import Sybase as SIG2api
-except ImportError, message:
- tmsg = _("Driver not installed: Sybase.py for Sybase ASE 11.0/11.9 [%s]") %
message
- raise GConnections.AdapterNotInstalled, tmsg
+except ImportError:
+ raise GConnections.DependencyError, ('Sybase.py', None)
class Connection(DBSIG2.Connection):
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- r5577 - in trunk/gnue-common/src/datasources: . drivers/DBSIG2 drivers/adodbapi/adodbapi drivers/db2/db2 drivers/dbf/dbf drivers/gadfly/gadfly drivers/informix/informix drivers/ingres/ingres drivers/interbase/interbase drivers/ldap drivers/mysql/mysql drivers/odbc/wodbc drivers/oracle/cxoracle drivers/oracle/dcoracle drivers/postgresql/popy drivers/postgresql/psycopg drivers/postgresql/pygresql drivers/postgresql/pypgsql drivers/sapdb/sapdb drivers/sqlite/sqlite drivers/sqlrelay/sqlrelay drivers/sybase/sybase,
reinhard <=