pasar de tabla dbf a postgresql

1,307 views
Skip to first unread message

Juan Rojas C

unread,
Jan 25, 2010, 12:39:07 PM1/25/10
to mundovisualfoxpro
Buenos dias:
 
Gracias por la atencion, estoy pasando registros de una tabla (art-a.dbf) a una tabla que esta en mi motor postgresql llamada art_a asi:
 
PUBLIC gnConnHandle 
lcServidor  = '192.168.1.10' && dominio o ip del servidor
lcBaseDatos = 'inventario'  && nombre de la base de datos 
lcPuerto = '5432'   && pueto del servidor, defautl 5432
usu  = 'postgres'   && usuario del servidor
pass = 'altasierra'   && password del usuario
lcCnxStr    = 'DRIVER={PostgreSQL ansi};SERVER=' + lcServidor  +;
        ';port=' + lcPuerto + ';DATABASE=' + lcBaseDatos +;
        ';UID=' + usu +;
        ';PWD='+ pass +';'
gnConnHandle  = SQLSTRINGCONNECT(lcCnxStr) && intenta establecer la comunicación con el servidor
IF gnConnHandle  = -1   && errores ?
   =MESSAGEBOX('Usuario o contraseña incorrectos',16,':: Error en la conexión ::')
ENDIF
SQL1=SQLEXEC(gnConnHandle,'delete from art_a')
SELECT 1
use art-a
GO TOP
SCAN
   SCATTER MEMVAR
   M.TIP_CAMB=M.TIP_CAMD
   TEXT TO VARGRA TEXTMERGE NOSHOW PRETEXT 15
        INSERT INTO art_a (CODIGO,DESCRIPC,CAMBIO,NANDINA,GRUPO,CLAVE,FACT_VTA,COS_FAB,PRECOSD_A,PRECOSD,DOLAR,TIP_CAMB,VALORV,LOCALIZA,STKACT,SDO_REAL,STKMIN,FECHA,S_INICIAL,INGRANO,EGRANO) VALUES (?M.CODIGO,?M.DESCRIPC,?M.CAMBIO,?M.NANDINA,?M.GRUPO,?M.CLAVE,?M.FACT_VTA,?M.COS_FAB,?M.PRECOSD_A,?M.PRECOSD,?M.DOLAR,?M.TIP_CAMB,?M.VALORV,?M.LOCALIZA,?M.STKACT,?M.SDO_REAL,?M.STKMIN,?M.FECHA,?M.S_INICIAL,?M.INGRANO,?M.EGRANO)
   ENDTEXT
   SQL1=SQLEXEC(gnConnHandle,VARGRA)
ENDSCAN
use
 
les comentare que lo hace Ok, pero el problema es que es muy lento (son 1973 registros), me preguntaba si hay otra forma de hacer lo mismo pero optimizado, lei algunos articulos sobre txt a postgresql pero probando no me sale nada, se que algo estoy haciendo mal, me podrian dar una ayuda por favor.
 
NOTA: MIS HERRAMIENTAS SON VFP9 Y POSTGRESQL 8.3
 
JRCORONADO

MVilchez

unread,
Jan 25, 2010, 4:34:42 PM1/25/10
to Mundo Visual FoxPro
amigo hay una herramienta "SQL MANGER for Postgres", seguro te sera de
mucha utilidad para migrar tus tablas de dbf a postgres, cuentanos
como te fue, saludos

> (CODIGO,DESCRIPC,CAMBIO,NANDINA,GRUPO,CLAVE,FACT_VTA,COS_FAB,PRECOSD_A,PREC­OSD,DOLAR,TIP_CAMB,VALORV,LOCALIZA,STKACT,SDO_REAL,STKMIN,FECHA,S_INICIAL,I­NGRANO,EGRANO)
> VALUES
> (?M.CODIGO,?M.DESCRIPC,?M.CAMBIO,?M.NANDINA,?M.GRUPO,?M.CLAVE,?M.FACT_VTA,?­M.COS_FAB,?M.PRECOSD_A,?M.PRECOSD,?M.DOLAR,?M.TIP_CAMB,?M.VALORV,?M.LOCALIZ­A,?M.STKACT,?M.SDO_REAL,?M.STKMIN,?M.FECHA,?M.S_INICIAL,?M.INGRANO,?M.EGRAN­O)

Carlos Miguel FARIAS

unread,
Jan 25, 2010, 4:39:55 PM1/25/10
to mundovis...@googlegroups.com
Para mejorar el desempeño, podrías preparar la sentencia insert con sqlprepare( ver ayuda vfp ),
por lo que cada insert va a ser luego mas rápido (el postgre aprende con el prepare y luego tiene que mover solo datos)
y la otra es hacer una insersion masiva.

--
_______________________________________________________________
Has recibido este mensaje porque estás suscrito al Grupo "Mundo Visual
FoxPro" de Grupos de Google.
 
Para anular la suscripción a este grupo, envía un mensaje a:
mundovisualfox...@googlegroups.com

Ing.Daniel Bojorge

unread,
Jan 25, 2010, 4:59:09 PM1/25/10
to mundovis...@googlegroups.com
Yo trabajo con VFP y SQL Server, al cual desde vfp le envío un archivo xml y lo recibe (en un SP) el Sql server y lo agrega a la tabla que le indico.  No he tenido la oportunidad de trabajar con PostGreSQL, ¿será que trabaje con algo parecido a XML?



Dios L@s Bendiga

Saludos,

Daniel (Con 1 Estrella DCE de Microsoft)
Nicaragua

visita www.debs.educaleft.com
Reply all
Reply to author
Forward
0 new messages