I'm setting up my first project that will use SA exclusively for
database access and I've run into some behavior that seems odd to me.
If I insert u"" into a column that is defined as nvarchar then when I
select that column, I receive u" ". So I'm receiving a unicode string
containing one space where I would expect to find an empty unicode
string. Does this ring any bells for anyone?
I'm using:
SQLAlchemy 0.5.0beta3
pyodbc 2.0.58
FreeTDS 0.82
Here's a test case:
import
unittest
import
pyodbc
import sqlalchemy as
sa
class
TestMSSQLConnections(unittest.TestCase):
def
setUp(self):
self.host
=
self.port
=
self.host_and_port = "%s:%s" % (self.host,
self.port)
self.database
=
self.user
=
self.password
=
engine_url = "mssql://%s:[EMAIL PROTECTED]/%s" %
\
(self.user,
self.password,
self.host_and_port,
self.database)
self.sa_engine =
sa.create_engine(engine_url)
self.unicode_test_table = sa.Table("unicode_test_table",
sa.MetaData(),
sa.Column("unicode_test_column",
sa.Unicode(60)))
self.unicode_test_table.drop(bind=self.sa_engine)
self.unicode_test_table.create(bind=self.sa_engine)
def
test_sqlalchemy_over_pyodbc(self):
assert
isinstance(self.sa_engine.dialect,
sa.databases.mssql.MSSQLDialect_pyodbc),
\
self.sa_engine.dialect
self.sa_engine.execute(self.unicode_test_table.insert(),
unicode_test_column=u"")
rows =
list(self.sa_engine.execute(self.unicode_test_table.select()))
assert u"" == rows[0].unicode_test_column,
\
repr(rows[0].unicode_test_column)
unittest.main()
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---