[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r9398 - trunk/gnue-common/src/datasources/drivers/sql/mysql
From: |
johannes |
Subject: |
[gnue] r9398 - trunk/gnue-common/src/datasources/drivers/sql/mysql |
Date: |
Thu, 22 Feb 2007 08:31:32 -0600 (CST) |
Author: johannes
Date: 2007-02-22 08:31:31 -0600 (Thu, 22 Feb 2007)
New Revision: 9398
Modified:
trunk/gnue-common/src/datasources/drivers/sql/mysql/mysqldbdrv.py
Log:
Make use of SET NAMES optional (driven by a connection parameter)
Modified: trunk/gnue-common/src/datasources/drivers/sql/mysql/mysqldbdrv.py
===================================================================
--- trunk/gnue-common/src/datasources/drivers/sql/mysql/mysqldbdrv.py
2007-02-22 10:09:53 UTC (rev 9397)
+++ trunk/gnue-common/src/datasources/drivers/sql/mysql/mysqldbdrv.py
2007-02-22 14:31:31 UTC (rev 9398)
@@ -75,6 +75,7 @@
* port -- This is the port where the server is running (optional)
* unicode -- Enables/disable unicode connection mode (optional,
default=true)
* encoding -- Charset used for the database connection (default="utf-8")
+* version -- Server version of the database server (4 or 5, default is 5)
Examples
--------
@@ -92,6 +93,10 @@
3. Other than that, the driver is fully functional with no known serious
problems.
+
+If you get an error while connecting to the server which looks like this:
+(1193, "Unknown system variable 'NAMES'") please set the connection parameter
+'version=4'.
"""
@@ -124,23 +129,27 @@
'passwd': connectData ['_password'] or '',
'use_unicode': True}
+ # MySQL 4.0* does not support SET NAMES ...
+ srv_version = connectData.get('version', 5)
+
# optional parameters
for gnueName, dbName in [('host', 'host'), ('port', 'port'),
('unicode', 'use_unicode')]:
if gnueName in connectData:
if gnueName == 'port':
- kwargs [dbName] = int (connectData [gnueName])
+ kwargs [dbName] = int (connectData[gnueName])
elif gnueName == 'unicode':
- kwargs [dbName] = not (connectData [gnueName] in
['False','false','0'])
+ kwargs [dbName] = not (connectData[gnueName] in
['False','false','0'])
else:
kwargs [dbName] = connectData [gnueName]
- if mySQL_encTable.has_key (self._encoding):
- kwargs ['init_command'] = ('SET NAMES %s' %
mySQL_encTable[self._encoding])
+ if int(srv_version) == 5 and mySQL_encTable.has_key (self._encoding):
+ kwargs ['init_command'] = ('SET NAMES %s' %
+ mySQL_encTable[self._encoding])
else:
assert gDebug (1, "Encoding '%s' is not supported by mysql dbdriver. "
- "Using default encoding." % self._encoding)
+ "Using default encoding." % self._encoding)
return ([], kwargs)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r9398 - trunk/gnue-common/src/datasources/drivers/sql/mysql,
johannes <=