Also, this works correctly: isql -v zfp efractal efR@cZFP13 +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> select prijmeni from osoba where id_osoba = 462493 prijmeni
Nečasová SQLRowCount returns 1 1 rows fetched SQL> This does not: iusql -v zfp efractal efR@cZFP13 +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> select prijmeni from osoba where id_osoba = 462493 prijmeni asov� SQLRowCount returns 1 1 rows fetched SQL> Ladislav Lenart On 9.10.2012 12:03, Ladislav Lenart wrote: > Hello. > > No, I was not able to connect via pymssql. Furthemore I would like to use > pyodbc > if it is the preferred way. I just did not know that when I started with > pymssql. > > It really is a misconfigured character encoding issue in pyodbc / freetds on > my > part. I am just clueless as to what should I set to what to make it all work. > > The code: > > cnxn = > pyodbc.connect('DRIVER={FreeTDS};SERVER=10.230.128.140;PORT=1433;DATABASE=ZFP_CRM;UID=efractal;PWD=efR@cZFP13;TDS_VERSION=8.0') > cursor = cnxn.cursor() > cursor.execute("select prijmeni from osoba where id_osoba = 462493") > row = cursor.fetchone() > print row > > prints: > > ('Ne?asov', ) > > The correct value is 'Nečasová'. Ideally I would like to see the following: > > (u'Nečasová', ) > > On a side note, the returned value is one character shorter. I would expected: > > ('Ne?asov?', ) > > > However, when I connect via tsql, it works correcly: > > tsql -S zfp -U efractal > Password: > locale is "cs_CZ.UTF-8" > locale charset is "UTF-8" > using default charset "utf8" > 1> select prijmeni from osoba where id_osoba = 462493 > 2> go > prijmeni > Nečasová > (1 row affected) > 1> > > > I guess I am on my own now. Anyway, thank you for your kind assistance. > > Ladislav Lenart > > > On 8.10.2012 19:06, Michael Bayer wrote: >> if you didnt have this problem with pymssql then please apply the patch I >> sent previously. >> >> However, I'm going to bet the problem remains as it seems something is not >> right with how your database and/or client is configured. I'm not familiar >> with the encoding pattern seen in your information_schema queries. you may >> have to reproduce the issue using plain SELECT statements against >> information_schema and then seek outside help. >> >> >> >> diff -r 17cab4ad55d5 lib/sqlalchemy/dialects/mssql/pymssql.py >> --- a/lib/sqlalchemy/dialects/mssql/pymssql.py Thu Oct 04 18:26:55 >> 2012 -0400 >> +++ b/lib/sqlalchemy/dialects/mssql/pymssql.py Fri Oct 05 18:46:01 >> 2012 -0400 >> @@ -80,7 +80,7 @@ >> def _get_server_version_info(self, connection): >> vers = connection.scalar("select @@version") >> m = re.match( >> - r"Microsoft SQL Server.*? - (\d+).(\d+).(\d+).(\d+)", vers) >> + r"\s*Microsoft SQL Server.*? - (\d+).(\d+).(\d+).(\d+)", vers) >> if m: >> return tuple(int(x) for x in m.group(1, 2, 3, 4)) >> else: >> >> On Oct 8, 2012, at 12:10 PM, Ladislav Lenart wrote: >> >>> Hello. >>> >>> I adjusted the ODBC/FreeTDS condifugration according to your suggestions but >>> still get the "NoSuchTableError: mlm_spol". >>> >>> freetds.conf: >>> >>> [zfp] >>> host = 10.230.128.140 >>> port = 1433 >>> tds version = 8.0 >>> asa database = ZFP_CRM >>> client charset = utf8 >>> text size = 50000000 >>> >>> >>> odbc.ini: >>> >>> [ODBC Data Sources] >>> zfp = test >>> >>> [zfp] >>> Driver = /usr/lib/libtdsodbc.so >>> Description = test >>> Trace = No >>> Servername = zfp >>> >>> >>> odbcinst.ini (for the sake of completeness): >>> >>> [FreeTDS] >>> Driver = /usr/lib/libtdsodbc.so >>> UsageCount = 2 >>> >>> >>> The code: >>> >>> from sqlalchemy.engine import create_engine >>> from sqlalchemy.ext.sqlsoup import SqlSoup >>> >>> if __name__ == '__main__': >>> engine = create_engine("mssql://efractal:efR@cZFP13@zfp", echo='debug') >>> db = SqlSoup(engine) >>> x = db.mlm_spol.fetchone() >>> print x >>> >>> >>> still fails with NoSuchTableError: mlm_spol >>> >>> Its debug output is the same as in my previous email which used different >>> connect style. >>> >>> And the code that uses db.execute('select * from mlm_spol').fetchone() still >>> works... >>> >>> Any other ideas? >>> >>> Ladislav Lenart >>> >>> >>> On 8.10.2012 17:45, Michael Bayer wrote: >>>> your freetds datasource should be configured with CLIENT_CHARSET=utf8 as I >>>> illustrated earlier: >>>> >>>> [ms_2005] >>>> host = 172.16.248.128 >>>> port = 1213 >>>> tds version = 8.0 >>>> client charset = UTF8 >>>> text size = 50000000 -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalchemy@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.