may you provide an example of this? i've broke my mind for past three days,
but can't get this code to work
i'm using latest sqlalchemy and pymssql from pip
engine = create_engine("mssql+pymssql://%s:%s@RTBD/rt?charset=utf8" %
(settings.RT_USER, settings.RT_PWD), echo = True, encoding = 'utf8')
metadata = MetaData()
metadata.reflect(engine, only = [u"Заказы",])
orders = metadata.tables[u'Заказы']
engine.execute(orders.select(orders.c[u'Номер заказа'] == u'14-01-0001'))
the exception is
ValueError Traceback (most recent call last)
<ipython-input-3-659410bb024c> in <module>()
----> 1 engine.execute(orders.select(orders.c[u'Номер заказа'] ==
u'14-01-0001'))
python2.7/site-packages/sqlalchemy/engine/base.pyc in execute(self,
statement, *multiparams, **params)
1680
1681 connection = self.contextual_connect(close_with_result=True)
-> 1682 return connection.execute(statement, *multiparams, **params)
1683
1684 def scalar(self, statement, *multiparams, **params):
python2.7/site-packages/sqlalchemy/engine/base.pyc in execute(self, object,
*multiparams, **params)
718 type(object))
719 else:
--> 720 return meth(self, multiparams, params)
721
722 def _execute_function(self, func, multiparams, params):
python2.7/site-packages/sqlalchemy/sql/elements.pyc in
_execute_on_connection(self, connection, multiparams, params)
315
316 def _execute_on_connection(self, connection, multiparams,
params):
--> 317 return connection._execute_clauseelement(self, multiparams,
params)
318
319 def unique_params(self, *optionaldict, **kwargs):
python2.7/site-packages/sqlalchemy/engine/base.pyc in
_execute_clauseelement(self, elem, multiparams, params)
815 compiled_sql,
816 distilled_params,
--> 817 compiled_sql, distilled_params
818 )
819 if self._has_events or self.engine._has_events:
python2.7/site-packages/sqlalchemy/engine/base.pyc in
_execute_context(self, dialect, constructor, statement, parameters, *args)
945 parameters,
946 cursor,
--> 947 context)
948
949 if self._has_events or self.engine._has_events:
python2.7/site-packages/sqlalchemy/engine/base.pyc in
_handle_dbapi_exception(self, e, statement, parameters, cursor, context)
1109 )
1110
-> 1111 util.reraise(*exc_info)
1112
1113 finally:
python2.7/site-packages/sqlalchemy/engine/base.pyc in
_execute_context(self, dialect, constructor, statement, parameters, *args)
938 statement,
939 parameters,
--> 940 context)
941 except Exception as e:
942 self._handle_dbapi_exception(
python2.7/site-packages/sqlalchemy/engine/default.pyc in do_execute(self,
cursor, statement, parameters, context)
433
434 def do_execute(self, cursor, statement, parameters,
context=None):
--> 435 cursor.execute(statement, parameters)
436
437 def do_execute_no_params(self, cursor, statement, context=None):
python2.7/site-packages/pymssql.so in pymssql.Cursor.execute
(pymssql.c:6057)()
python2.7/site-packages/_mssql.so in _mssql.MSSQLConnection.execute_query
(_mssql.c:9858)()
python2.7/site-packages/_mssql.so in _mssql.MSSQLConnection.execute_query
(_mssql.c:9734)()
python2.7/site-packages/_mssql.so in
_mssql.MSSQLConnection.format_and_run_query (_mssql.c:10814)()
python2.7/site-packages/_mssql.so in
_mssql.MSSQLConnection.format_sql_command (_mssql.c:11042)()
python2.7/site-packages/_mssql.so in _mssql._substitute_params
(_mssql.c:18359)()
<type 'str'>: (<type 'exceptions.UnicodeEncodeError'>,
UnicodeEncodeError('ascii', u'params dictionary did not contain value for
placeholder: \u041d\u043e\u043c\u0435\u0440
\u0437\u0430\u043a\u0430\u0437\u0430_1', 57, 62, 'ordinal not in
range(128)'))
SQLAlchemy log is
2014-04-18 22:43:46,413 INFO sqlalchemy.engine.base.Engine SELECT
[Заказы].[Номер заказа], <... a lot of fields here ...>
FROM [Заказы]
WHERE [Заказы].[Номер заказа] = %(Номер заказа_1)s
2014-04-18 22:43:46,414 INFO sqlalchemy.engine.base.Engine
{'\xd0\x9d\xd0\xbe\xd0\xbc\xd0\xb5\xd1\x80
\xd0\xb7\xd0\xb0\xd0\xba\xd0\xb0\xd0\xb7\xd0\xb0_1': u'14-01-0001'}
2014-04-18 22:43:46,415 INFO sqlalchemy.engine.base.Engine ROLLBACK
2014-04-18 18:47 GMT+04:00 Michael Bayer <[email protected]>:
> yes, make sure you use Python unicode objects in Py2K (e.g. u'thename').
>
>
> On Apr 18, 2014, at 8:06 AM, Belegnar Dragon <[email protected]> wrote:
>
> Hello!
>
> Is it possible to handle with SQLAlchemy mssql database with cyrillic
> table and column names?
>
> --
> WBR,
> TO
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "sqlalchemy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
>
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "sqlalchemy" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/sqlalchemy/Cv8DzGRzA5M/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sqlalchemy.
> For more options, visit https://groups.google.com/d/optout.
>
--
Счастливой радости!
Тимур Ожегин
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.