buenas noticias adodb

Chema Cortes ch3m4 en ch3m4.org
Jue Ene 29 11:02:41 CET 2004


Horacio Degiorgi wrote:
> como dice el programador
> /Python does have the DB API, but it's similar to ODBC in that it 
> provides a very minimal layer, without abstracting SELECT ... LIMIT, 
> LOBs, string quoting, etc
> 
> db-Api2 lo que permite ( soy nuevito en esto de python corrijanme si no 
> es así) es normalizar las funciones necesarias para acceder a bases de 
> datos. Adodb permite escribir sqls portables . es decir cursor.connect() 
> y cursor.execute()  estan definidas para todos los motores de bases de 
> datos , se puede escribir una sentencia sql que sea interpretada por 
> cualquier motor.
> estas sentencias son diferentes para cada motor
> /
> MS SQL 	select top 10 from table
> MySQL and PostgreSQL 	select * from table limit 10
> Oracle 	select * from (select * from table) where rownum <= 10

La idea la entendía, pero soy más partidario de respetar la DB-API2 en 
todo lo que se pueda. Supongo que para quien sólo use estos 4 SGDBs, y 
quiera pasar código desde PHP, este módulo puede servirle estupendamente.

En la mayoría de los casos, sobre todo si solicitas registros ordenados, 
no parece que sea más efectivo hacer un 'select..limit' que un 
cursor.fetchmany().

> Otras opciones interesantes son las conversiones de fechas de y hacia el 
> motor , manejo de blobs,
> recuperar un diccionario con los datos de una consulta
> cursor.GetRowAssoc(1)

Sobre esto último, hay una explicación en la DB-API2 de porqué no se 
había añadido esta característica (Por ejemplo, cómo manejar con un 
diccionario el siguiente select, si los tres campos se llaman igual: 
'select campo1, "campo1", campo2 as campo1 from table;')

> no es la panacea pero seguro que para los que comienzan como yo es algo 
> más simple que las dbApis.

Desde luego que sí. Cualquier ayuda es poca.

-- 
Res publica non dominetur




Más información sobre la lista de distribución Python-es