FoxPro/Visual FoxPro - ayuda con append

 
Vista:

ayuda con append

Publicado por Manuel Medina (332 intervenciones) el 18/04/2009 23:42:59
Saludo
Por favor, que esta pasando:

Tengo dos tablas abierta, cuando ejecuto un append from se agregan todos los registros aun condicionandolo.

SELECT pagos
APPEND FROM pagare FOR pagare.abono >0

cuando boy a la tablas de pagos aparecen un lote de registros que no he enviado. hasta me aparecen donde al abono es 0 y yo envio lo que son mayores que 0.

Pero si lo hago con un
SCAN

ENDSCAN

lo hace perfecto pero aqui tengo que reemplazar con replace a cada uno y no lo quiero asi.

gracias a todos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda con append

Publicado por TITO (311 intervenciones) el 20/04/2009 04:30:08
Existen dos soluciones:
La primera es a corto plazo y tiene la limitacion de que corresponde al ambito de la base de datos nativa de VFP.
La segunda solucion es universal, y es la que yo sugiero, pues en caso de que posteriormente quisieras migrar los datos a MYSql o SQLserver, o a cualquiera de las bases de datos grandes solo tendrias que cambiar un par de lineas de codigo y listo.
Aqui van las sugerencias:
a) SELECT * from pagare where pagare.abono > 0 into cursor cur_pagos
Sele pagos
APPEND FROM DBF("cur_pagos")

b) SELECT * from pagare where pagare.abono > 0 into cursor cur_pagos.
Do While !eof("cur_pagos")
INSERT INTO pagos (campo1,campo2,campo3..etc ) VALUES (cur_pagos.valor1, cur_pagos.valor2, cur_pagos.valor3..etc)
Skip
Enddo

En caso de duda la sintaxis, esta explicada con mayor detalle en el HELP de VFP9.
Es aconsejable dejar de lado la instrucciones nativas de VFP que se relacionan con la interaccion de los datos, vale decir, APPEND BLANK, SEEK, FOUND,REPLACE, LOCATE,
y reemplazarlas por instrucciones SQL.
Llegado el momento de querer usar una de las bases de datos mencionadas anteriormente, el trabajo que tendras es muy arduo, en cambio si lo hace una sola vez solo cambias la forma de conexion a la base de datos y listo.
Espero haberte ayudado.
TITO
ellitre2004'arroba'yahoo.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con append

Publicado por Mario (199 intervenciones) el 20/04/2009 15:23:55
Amplio la respuesta de Tito.
Con VFP9 podés utilizar la sintaxis siguiente:
INSERT INTO Tabla2(campo1, campo2, campoN) SELECT campo1, campo2, campoN FROM Tabla1 WHERE Condicion.
Este código reemplazaría a la opción b)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar