[Tutor] Fwd: Re: [python-win32] Handling a Unicode Return using Pyodbc
Tim Golden
mail at timgolden.me.uk
Tue Nov 15 16:43:15 CET 2011
[cc-ing back to the *correct* list in case other readers find it
helpful...]
On 15/11/2011 15:16, Tony Pelletier wrote:
> Thanks, Tim!
>
> This is working brilliantly.... Slow, but working..:) I can go from
> here and see if there's a way to speed it up.
Well you've got a few options, although an amount depends on how
much control you have over your data and how well you can predict.
One option is to encode at SQL Server level: CAST your NVARCHAR to
VARCHAR as part of the your query, eg:
SELECT
contacts.id,
name = CAST (
contacts.name COLLATE SQL_Latin1_General_CP1_CS_AS AS
VARCHAR (200)
)
FROM
contacts
This will bring the text in as bytes encoded Latin1 which you
can then write directly to the csv without the encoder. Without
having tested this, I imagine it would be faster than encoding
blindly at the Python end since it'll happen lower down the stack
and you're pinpointing the data rather than running through all
the columns on the offchance of finding one which is unicode.
An alternative is to arrange something equivalent at the Python
end -- ie have specific encoders for different rows which can
target the specific columns which are known to be NVARCHAR.
TJG
_______________________________________________
python-win32 mailing list
python-win32 at python.org
http://mail.python.org/mailman/listinfo/python-win32
More information about the Tutor
mailing list