Chi ha realizzato il db al quale devo accedere ha avuto la brillante idea di
usare dei caratteri accentati (Es: "id_attività") nei nomi delle tabelle e
nei nomi dei campi, cosa che mi ha costretto, per non so quale questione di
encoding, a creare delle viste con i nomi ascii, risolvendo temporaneamente
il problema.

Immolate lui come porcello perchè è un abominio :-)

Ho avuto l'accortezza (spero di aver fatto bene) di mettere in testa la
stringa:
-*- coding: latin-1 -*-

Questo ha poco a che vedere. Serve per i commenti e gli
identificatori. Insomma serve per poter "digitare" caratteri in
Latin-1 nel file .py. Ciò che tu stai facendo è passare al server una
stringa con un encoding che lui non sa. Non esiste stringa senza
encoding. Questo è un concetto fondamentale da capire. Se vuoi
approfondire: http://www.joelonsoftware.com/articles/Unicode.html e
http://www.jorendorff.com/articles/unicode/

Quindi ho proceduto con una query del tipo: server.query("select id_attività
from prodotti")
L'errore fornito da python è una cosa del tipo:
pymssql.DatabaseError: internal error: SQL Server message 207, severity 16,
stat
e 3, line 1:
Il nome di colonna 'id_attivitÓ' non è valido.

Questo perchè necessitiamo di una informazione fondamentale:

- in quale encoding è il database?

Una volta scoperto questo devi fare in modo di codificare tutte le
stringhe secondo il set di caratteri corretto. Vedrai che cosi si
risolverà il problema


--
Lawrence
http://www.oluyede.org/blog
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a