FoxPro/Visual FoxPro - AYUDA CON IMPORTACION

 
Vista:

AYUDA CON IMPORTACION

Publicado por Jose Angel Luna Grajeda (62 intervenciones) el 08/05/2009 23:31:59
Como Ustedes saben el menu file del VFP 9.0 tiene una opcion que se llama IMPORTACION, al darle esa opcion y elegir Paradox solamente tiene 3.5 y 4.0 pero lo que estoy tratando de importar esta en Paradox 5.0, por lo tanto me dice que la version esta equivocada, podrís decirme alguien como hacerle para que pueda incluir en un programa que estoy haciendo la instruccion IMPORT?, gracias anticipadas.
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 IMPORTACION

Publicado por Pablo (Argentina) (433 intervenciones) el 09/05/2009 15:47:16
Hola Amigo, mira aca te voy a pasar una posible solucion que le paso a otro colega el mes pasado de este mismo año y que otro colega (Es_Binario) que a mi tambien me ha ayudado mucho le respondio la pregunta a su inquietud y que vos parece tenes el mismo problema.
Proba con lo siguiente y sino te funciona espera a ver si el colega (Es_Binario) que sabe como es el asunto te de una mano yo te paso algo. Es para VFP 9 no se si funciona es ediciones anteriores

con respecto a la importacion tienes 2 opciones

1 Usar una conexion odbc y migrar los datos con codigo escrito claro por ti

2 Usar el Cursor Adapter y usar tambien codigo escrito por ti.

Saludos!

Suerte y avisa si pudistes solucionar
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 IMPORTACION

Publicado por es_binario (757 intervenciones) el 09/05/2009 20:52:14
Saludos

efectivamente como dice Pablo, una buena opcion es importar a travez de una conexion ODBC, tambien existe la funcion append from cuando es exactamente la misma estructura, o de esta forma se obtiene un cursor el cual tratamos como una tabla nativa de foxpro

Cuando se crea una conexion en el panel de control una conexion odbc se tiene la ventaja de que se puede acceder a cualquier base de datos, incluso a hojas de calculo de excel, en foxpro usando el asistente se crea una vista remota de la base de datos, Paradox, y se elige las tablas con las que se desea trabajar, esa nueva vista remota se puede agregar al Data Enviroment de un formulario y tambien agregamos la tabla destino, entonces ya podemos crear un codigo que nos permita migrar esta aplicacion.

Yo tengo un cliente de una farmacia, el cual su proveedor, le permite bajar una base de datos en foxpro 2.6 con los precios al dia, es muy importante ya que se manejan 14 mil productos en la tabla artuculos, tener los precios al dia con una un formulario al cual he llamado actualiza, hace tambien la funcion de importar a lo que yo prefiero llamar Migracion, este proceso le tome alrededor de 30 segundos migrar 14 mil productos y mantener al dia los precios, y es una gran ventaja que me agradece bastante uno de mis clientes. te pongo el codigo, para que te des una idea, es algo grande pero lo pongo completo con la finalidad de que no se escapen los detalles.

Saludos.

lo siguiente es del metodo migrar, teniendo ambas tablas habiertas la vista origen y el destino articulos.

*// Nueva mecanica para actulizar de la tabla de nadro
*// Autor: Victor Hugo

LOCAL mEan, mNad, mDcr, mPpu, mPfa, mDev
LOCAL mRef, mSsa, mOnc, mSup, mEsp, mfam
LOCAL mLab, mMgn, mDep, mCat, mGiv, mMov
LOCAL mIep, mUpd

STORE "Si" TO mUpd
*// ==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#
LOCAL mDescuentoIVA, mDescuentoCon, mDescuentoNor
STORE ThisFormset.Form1.TxtNormal.Value TO mDescuentoNor
STORE ThisFormset.Form1.TxtDescIva.Value TO mDescuentoIVA
STORE ThisFormset.Form1.TxtCo.Value TO mDescuentoCon
*// ==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#==#

*//------------------------------------------------BARRA BARRA BARRA BARRA BARRA BARRA BARRA BARRA
LOCAL barra_progreso_tot
LOCAL total_de_registros
LOCAL porcentaje_actual,porcentaje_viejo
porcentaje_viejo = 0

*//------------------------------------------------BARRA BARRA BARRA BARRA BARRA BARRA BARRA BARRA

*//------------------------------------------------
SELECT articulos
SET ORDER TO cod_barra
*//------------------------------------------------
SELECT nadro_art
*//------------------------------------------------BARRA BARRA BARRA BARRA BARRA BARRA BARRA BARRA
total_de_registros = Reccount()
*// Barran 2
Thisformset.form1.barraProg.max = 100
*//------------------------------------------------BARRA BARRA BARRA BARRA BARRA BARRA BARRA BARRA
FOR ve = 1 TO RECCOUNT()
*// \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
*// / \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
*// \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
*// / \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
SELECT nadro_art
GO ve
mNad = ALLTRIM(STR(INT(VAL(nadro_art.cod_nad)),8))
mEan = ALLTRIM(STR(INT(VAL(nadro_art.cod_ean)),15))
mDcr = alltrim(nadro_art.descrip)
mPpu = nadro_art.prec_pub
mPfa = nadro_art.prec_farm
mDev = nadro_art.cve_dev
mRef = nadro_art.cve_refr
mSsa = nadro_art.cve_ssa
mOnc = nadro_art.cve_onco
mSup = nadro_art.cve_susp
mEsp = nadro_art.cve_espe
mfam = nadro_art.familia
mLab = nadro_art.laborato
mMgn = nadro_art.margen
mDep = nadro_art.departam
mCat = nadro_art.categori
mGiv = nadro_art.gravaiva
mMov = nadro_art.movim
IF ISNULL(nadro_art.tasaieps)
mIep = 0
else
mIep = nadro_art.tasaieps
Endif

SELECT articulos
SEEK mEan
IF FOUND()
*// \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
*// / \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
*// \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
*// / \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
*// es una actualizacion
REPLACE articulos.descrip WITH mDcr
REPLACE articulos.p_farmacia WITH mPfa
REPLACE articulos.p_publico WITH mPpu
REPLACE articulos.cve_dev WITH mDev
REPLACE articulos.cve_refr WITH mRef
REPLACE articulos.cve_ssa WITH mSsa
REPLACE articulos.cve_onco WITH mOnc
REPLACE articulos.cve_susp WITH mSup
REPLACE articulos.cve_espe WITH mEsp
REPLACE articulos.familia WITH mfam
REPLACE articulos.laborato WITH mLab
REPLACE articulos.margen WITH mMgn
REPLACE articulos.gravaiva WITH mGiv
REPLACE articulos.movim WITH mMov
REPLACE articulos.ieps WITH mIep
REPLACE articulos.code_nadro WITH mNad
REPLACE articulos.departam_n WITH mDep
REPLACE articulos.categori_n WITH mCat
REPLACE articulos.actualizado WITH mUpd
REPLACE articulos.desc WITH mDescuentoNor
ELSE
*// \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
*// / \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
*// \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
*// / \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
*// es un producto nuevo
APPEND BLANK
REPLACE articulos.cod_barra WITH mEan
REPLACE articulos.descrip WITH mDcr
REPLACE articulos.p_farmacia WITH mPfa
REPLACE articulos.p_publico WITH mPpu
REPLACE articulos.cve_dev WITH mDev
REPLACE articulos.cve_refr WITH mRef
REPLACE articulos.cve_ssa WITH mSsa
REPLACE articulos.cve_onco WITH mOnc
REPLACE articulos.cve_susp WITH mSup
REPLACE articulos.cve_espe WITH mEsp
REPLACE articulos.familia WITH mfam
REPLACE articulos.laborato WITH mLab
REPLACE articulos.margen WITH mMgn
REPLACE articulos.gravaiva WITH mGiv
REPLACE articulos.movim WITH mMov
REPLACE articulos.ieps WITH mIep
REPLACE articulos.code_nadro WITH mNad
REPLACE articulos.departam_n WITH mDep
REPLACE articulos.categori_n WITH mCat
REPLACE articulos.actualizado WITH mUpd
REPLACE articulos.desc WITH mDescuentoNor
ENDIF
*//------------------------------------------------BARRA BARRA BARRA BARRA BARRA BARRA BARRA BARRA
*// .Lblprogreso.Width = (ve * barra_progreso_tot) / total_de_registros
*// .Lblporcentaje.Caption = Alltrim(Str((ve/total_de_registros)*100)+'%')
porcentaje_actual = INT((ve/total_de_registros)*100)
IF porcentaje_actual != porcentaje_viejo
Thisformset.form1.barraProg.value = porcentaje_actual
porcentaje_viejo = porcentaje_actual
ENDIF
*//------------------------------------------------BARRA BARRA BARRA BARRA BARRA BARRA BARRA BARRA
EndFor
*// \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
*// / \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
*// \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
*// / \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/
UPDATE articulos;
SET articulos.refrigera = "R";
WHERE articulos.cve_refr = .T. AND EMPTY(code_nadro) = .F.
UPDATE articulos;
SET articulos.iva = 15, articulos.desc = mDescuentoIVA;
WHERE articulos.gravaiva = .T. AND EMPTY(code_nadro) = .F.
UPDATE articulos;
SET articulos.tip_desc = "C", articulos.desc = mDescuentoCon;
WHERE articulos.cve_onco = .T. AND EMPTY(code_nadro) = .F.

NOTA: dentro del codigo se maneja el control de una barra de progreso.
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 IMPORTACION

Publicado por Jose Angel Luna Grajeda (62 intervenciones) el 13/05/2009 02:04:14
Lo que sucede es que nunca he establecido conexion odbc y por consiguiente no se como se hace, ¿me pueden ayudar al respecto?
JOSE ANGEL
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