Acceso a una base de datos Ms Access
L Solis oficina
lsolis en mu.intecsa-inarsa.es
Jue Jun 29 17:12:26 CEST 2006
Marcos escribió:
> ¿Puedes mostrar una de las consultas que te falla? ¿Cómo lo pruebas en
> access si se trata de otras bbdd? ¿es con tablas de access adjuntas? Lo
> más común es hacer un programa mínimo que muestre el problema para que
> le echemos un vistazo.
>
> Chao
>
> El jue, 29-06-2006 a las 14:25 +0200, L Solis oficina escribió:
>
>> He podido acceder a varias bases de datos Ms Access a través de dao sin
>> ningún problema a partir de las instrucciones que pueden consultarse,
>> por ej, en:
>>
>> http://starship.python.net/crew/bwilk/access.html
>>
>> Sin embargo, en otras bases de datos, el mismo programa no consigue
>> devolver el resultado de la consulta (por supuesto está probada desde
>> Access). El programa no da error de conexión, ni ningún otro error,
>> simplemente me devuelve un recordset vacío.
>>
>> Alguna orientación sería bien recibida, muchas gracias,
>>
>> luis
>>
>>
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en aditel.org
>> http://listas.aditel.org/listinfo/python-es
>>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>
Aclaraciones:
1.- Consultas a bases de dato access siempre (versión 2002), con s.o.
Windows xp home sp2.
2.- Algunos ficheros *.mdb se conectan y devuelven bien el recordset
3.- Otros ficheros *.mdb se conectan pero devuelven un recordset vacío,
cuando trabajando directamente en access no es vacío.
Ahí va el código, pero creo que no es un problema de código:
def append_from_Access(self,txt_box=''):
try:
import ...
conn = win32com.client.Dispatch(r'ADODB.Connection')
DSN = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE="
DSN = DSN + self.__od.source() + ";"
conn.Open(DSN)
except Exception, inst:
...
try:
sql_statement='SELECT * FROM ' + self.__od.tabla_consulta()
#simplemente abre una tabla o consulta ya creada
rs = win32com.client.Dispatch(r'ADODB.Recordset')
rs.Open(sql_statement, conn, 1, 3)
while not rs.EOF:
cod=rs.Fields(self.__od.campo_cod()).Value
...
rs.MoveNext()
rs.Close()
conn.Close()
except Exception, inst:
...
------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es
Más información sobre la lista de distribución Python-es