コード例 #1
0
 def query(self, query_string, max_rows=1000):
     self._register()
     for qs in query_string.split('\0'):
         qs = qs.strip()
         if qs:
             if match_select(qs):
                 raise NotSupportedError(
                     "can not SELECT in deferred connections")
             self._sql_string_list.append(qs)
     return (), ()
コード例 #2
0
 def __init__(self, connection):
     """
       Parse the connection string.
       Initiate a trial connection with the database to check
       transactionality once instead of once per DB instance.
     """
     self._connection = connection
     self._parse_connection_string()
     self._forceReconnection()
     transactional = self.db.server_capabilities & CLIENT.TRANSACTIONS
     if self._try_transactions == '-':
         transactional = 0
     elif not transactional and self._try_transactions == '+':
         raise NotSupportedError(
             "transactions not supported by this server")
     self._transactions = transactional
     self._use_TM = transactional or self._mysql_lock
コード例 #3
0
import re
import MySQLdb
from MySQLdb import OperationalError, NotSupportedError, ProgrammingError, _mysql
import warnings
from contextlib import contextmanager
if six.PY2:
    from contextlib import nested
else:
    from contextlib import ExitStack as nested
from Products.ERP5Type.Timeout import TimeoutReachedError, getTimeLeft

MySQLdb_version_required = (0, 9, 2)

_v = getattr(_mysql, 'version_info', (0, 0, 0))
if _v < MySQLdb_version_required:
    raise NotSupportedError("ZMySQLDA requires at least MySQLdb %s, %s found" %
                            (MySQLdb_version_required, _v))

from MySQLdb.converters import conversions
from MySQLdb.constants import FIELD_TYPE, CR, ER, CLIENT
from Shared.DC.ZRDB.TM import TM
from DateTime import DateTime
from zLOG import LOG, ERROR, WARNING
from ZODB.POSException import ConflictError
from Products.ERP5Type.Utils import str2bytes

hosed_connection = (CR.SERVER_GONE_ERROR, CR.SERVER_LOST)

query_syntax_error = (ER.BAD_FIELD_ERROR, )

lock_error = (
    ER.LOCK_WAIT_TIMEOUT,