From: | "Leonel Nunez" <lnunez(at)enelserver(dot)com> |
---|---|
To: | "Ricardo Martin Gomez" <rimartingomez(at)hotmail(dot)com> |
Cc: | lordjose84(at)gmail(dot)com, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: chars => int |
Date: | 2007-02-01 15:25:35 |
Message-ID: | 44220.189.155.118.232.1170343535.squirrel@enelserver.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
> Jose: me parece que en algo estan equivocados sobre el tema de la
> portabilidad y es aqui en donde la apli de ustedes tiene el problema. que
> como te dije estan dedicando gran parte de los 80mb a procesar texto,
> hasta
> parece una locura escribirlo.
> el tema vendria + o - asi.
> La apli para poder tener una buena utilizacion tiene que usar algun SQL
> estandar que soporten todos los motores en el cual la vas a usar para
> cualquier select. Yo pensaba que tu problema era para portar los datos de
> una base a otra y por eso te recomende las funciones de conversion. En
> cuanto a la apli lo unico que tiene que hacer al momento de guardar los
> datos es validarlos segun el formato y poder insertarlos en la base de
> esta
> manera. luego el select es estandar y los datos los tratas segun su tipo.
> Espero poder ser claro y que me entiendas
>
> Saludos
> Martin.
>
>
Para esto y otras cosas existen ORBs como SqlAlchemy
www.sqlalchemy.org para Python o Hibernate www.hibernate.org Para Java
ejemplo para Sqlalchemy con PostgreSQL y Mysql ( YUCK! )
tenemos nuestro script test.py
------------------------------------------
from sqlalchemy import *
db = create_engine('postgres://leonel:hola(at)localhost:5432/leonel')
#db = create_engine('mysql://leonel:hola(at)localhost:3306/leonel')
metadata = BoundMetaData(db)
test_table = Table ('test', metadata,
Column ('id', Integer,primary_key=True),
Column ('usuario',String(40)),
Column ('fecha',DateTime ))
test_table.create()
insert = test_table.insert()
insert.execute(id=1,usuario='Yo mero',fecha='2007-01-01')
insert.execute(id=2,usuario='el otro',fecha='2006-12-12')
select = test_table.select()
result = select.execute()
for row in result:
print row[0] , row[1], row[2]
---------------------------------------------------
despues de ejecutar 2 veces ( una para PostgreSQL y otra para Mysql ) este
elaborado,complicado , rebuscado , casi casi ciencia nuclear y de
transbordadores espaciales (jeje ) terminamos con esto en las DB:
PostgreSQL :
leonel=> \d test;
Table "public.test"
Column | Type | Modifiers
---------+--------------------------+---------------------------------------------------
id | integer | not null default
nextval('test_id_seq'::regclass)
usuario | character varying(40) |
fecha | timestamp with time zone |
Indexes:
"test_pkey" PRIMARY KEY, btree (id)
leonel=> select * from test;
id | usuario | fecha
----+---------+------------------------
1 | Yo mero | 2007-01-01 00:00:00-07
2 | el otro | 2006-12-12 00:00:00-07
(2 rows)
MySQL :
mysql> describe test;
+---------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| usuario | varchar(40) | YES | | NULL | |
| fecha | datetime | YES | | NULL | |
+---------+-------------+------+-----+---------+----------------+
3 rows in set (0.01 sec)
mysql> select * from test;
+----+---------+---------------------+
| id | usuario | fecha |
+----+---------+---------------------+
| 1 | Yo mero | 2007-01-01 00:00:00 |
| 2 | el otro | 2006-12-12 00:00:00 |
+----+---------+---------------------+
2 rows in set (0.00 sec)
Me meti con cosas de fechas y secuencias ?
NO.
Y los datos estan en su respectivo formato de la base de datos.
Leonel
From | Date | Subject | |
---|---|---|---|
Next Message | Ricardo David Carrillo Sánchez | 2007-02-01 16:08:08 | Respaldos con Postgresql!! |
Previous Message | Ricardo Martin Gomez | 2007-02-01 12:17:29 | Re: chars => int |