El día 18 de noviembre de 2012 23:08, Miguel Barreiro Garcia
<[email protected]> escribió:
> A ver si me puede ayudar alguien con el siguiente problema:
>
> Quiero conectar desde Python con Microsoft Access y mas o menos lo he
> conseguido aunque tengo un problema con los acentos y caracteres "raros".
> el caso es que si quiero obtener los valores de una columna y estos
> contienen algún de los caracteres "raros" simplemente no va. Sin embargo si
> los valores de las columnas son números o texto "normal" no tengo problema.
Por la información que dices, parece ser un problema de la cónsola
(pythonwin?) donde muestras los resultados, no de ADODB ni de python.
Intenta ejecutar el script desde la línea de comandos cambiando la
codificación de caracteres:
C:\> chcp 1252
Otra forma de comprobar qué pasa es sacando la "representación" del
objeto o convertirlo a unicode:
print repr(rs.fields('CDG_CLAVE'))
print unicode(rs.fields('CDG_CLAVE'), "cp1252")
También ayudaría mucho ver el error concreto que te da.
>
> El código que he probado es el siguiente:
>
> import win32com.client
> conn = win32com.client.Dispatch('ADODB.Connection')
> conn.Open( "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\\Datos.mdb" )
> cmd = win32com.client.Dispatch('ADODB.Command')
> cmd.ActiveConnection = conn
> #encode('utf-8')
> #decode('utf-8')
> cmd.CommandText = "SELECT z.* FROM z;"
> rs = cmd.Execute()[0]
> #print rs.fields
>
> try:
> for field in rs.fields:
> print field.name
> while not rs.EOF:
> # Use elements of rs
> print rs.fields('CDG_CLAVE')
> rs.MoveNext()
> except:
> print "read err "
>
>
>
> El entorno de desarrollo es Python 2.1 (que ya se que está un poco
> desactualizado) con PythonWin en Xp
--
Y si he escrito una carta tan larga es porque no he tenido tiempo de
hacerla más corta.
_______________________________________________
Python-es mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/