Open GoogleCodeExporter opened 9 years ago
I forget to mention, I am connecting to SQL Server 2008 R2
Original comment by martin.t...@gmail.com
on 4 Apr 2014 at 7:48
I'm not able to reproduce this error under my Windows box.
But is this related to 64bit? Could you find a 32bit and test if problem
persist?
Original comment by jiangwen...@gmail.com
on 24 May 2014 at 2:52
Same error on my OpenSuse server (32 bit, Python 2.7, unixODBC 2.2.12, FreeTDS
0.91) - pypyodbc truncates column names to their first chars.
pyodbc works fine - shows full column names.
On Windows 7 32bit, Python 2.6.7 both pypyodbc and pyodbc work fine - with full
column names.
I've got some inner parms pypyodbc uses:
Linux: odbc_decoding=utf_16 odbc_encoding=utf_16_le ucs_length=2
UNICODE_SIZE=4 SQLWCHAR_SIZE=2
Windows: odbc_decoding=utf_16 odbc_encoding=utf_16_le ucs_length=2
UNICODE_SIZE=2 SQLWCHAR_SIZE=2
Original comment by alex.s.y...@gmail.com
on 25 Jun 2014 at 7:45
I use pypyodbc 1.3.3 from pypi.
Original comment by alex.s.y...@gmail.com
on 25 Jun 2014 at 7:49
Microsoft SQL Server Standard Edition (64-bit) 2008 R2 :-)
Original comment by alex.s.y...@gmail.com
on 25 Jun 2014 at 9:32
Same issue: only the first character for column name by description attribute.
with MS sqlserver 2008 R2 64bit.
unixODBC.i686 2.2.14-12.el6_3 @ol6_latest
unixODBC-devel.i686 2.2.14-12.el6_3 @ol6_latest
freetds.i686 0.91-2.el6 @epel
on RHEL6
Python 3.3.1
pypyodbc (1.3.3)
Original comment by hellowor...@gmail.com
on 2 Sep 2014 at 3:47
I reproduced this problem too. The column names are good on Windows 7, but on
Linux it does not work.
I use the same Python 3.3.4 on both platforms, the same pypyodbc.
The only difference: ODBC drivers.
On Windows I obviously have the Microsoft ODBC stuff.
On Linux I use the FreeTDS 0.91.103.
So I think pypyodbc/FreeTDS has some problem with SQLServer metadata.
Is there any workaround? Can FreeTDS or pypyodbc be fixed to handle this
properly?
Any other driver we can use on Linux?
Original comment by leonidil...@yahoo.com
on 29 Sep 2014 at 3:09
I did one more test: downloaded Microsoft ODBC Driver 11 for SQL for RedHat.
The same problem.
So now I believe that this is not a driver problem, but rather a pypyodbc
problem in Linux environment.
Any ideas?
Original comment by leonidil...@yahoo.com
on 29 Sep 2014 at 4:00
I found what the problem is, and I have a workaround (or maybe this is the fix).
Apparently, even though the data from the character columns may come as
unicode, the column names in the descriptor are still plain ascii.
In pypyodbc.py, in _UpdateDesc() method, line 1735, I see:
force_unicode = self.connection.unicode_results
Based on this flag, few lines below, it will call ODBC_APY accordingly. So I
replaced that line above by:
force_unicode = False
and it fixed the problem.
I am not sure why it works properly on Windows, I cannot see the pypyodbc.py
code there, I only see pypyodbc-1.3.3-py3.4.egg file which is a binary file.
I hope this is enough information for the maintainers to fix this problem
properly in the next release.
Original comment by leonidil...@yahoo.com
on 29 Sep 2014 at 7:12
I think issues 43 and 52 are duplicates of this issue. This problem prevents
me to use pypyodbc in production.
I also took a quick look at the code, like leonidil... I noted at line 2400
self.unicode_results = False
although one of the arguments is 'unicode_results' and it is used line 2436 to
establish a connection. There are 50% chance of discrepancy between
self.unicode_results and the value used to get a connection.
Original comment by marc.van...@gmail.com
on 13 Nov 2014 at 4:02
Original issue reported on code.google.com by
martin.t...@gmail.com
on 4 Apr 2014 at 7:46