PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → Añadir registros a bases de datos d
Añadir registros a bases de datos d
Started by Raül Vidiella, Oct., 01 2008 1:55 AM - 3 replies
Posted on October, 01 2008 - 1:55 AM
He conseguido y funciona perfectamente la aplicacion recuperando y
mostrando datos de tablas en fox, pero ahora se me plantea el problema
de añadir registros a estas tablas en fox, llevo toda la tarde dandole
vueltas y no hay manera.
Alguien podria darme una ayudita ? Utilizo OLEDB para la conexion.

Saludos
Raül Vidiella
Posted on October, 01 2008 - 11:27 AM
Hola Raül,

Si utiliza OLEDB, entonces se puede utilizar Hyper-File funciones como hAdd.

Un saludo de Francia

--
pat
http://megustawindev.free.fr
Posted on October, 01 2008 - 12:34 PM
En/na pat ha escrit:
Hola Raül,

Si utiliza OLEDB, entonces se puede utilizar Hyper-File funciones como hAdd.

Un saludo de Francia

--
pat
http://megustawindev.free.fr



El problema es que no se como referenciar la tabla de fox. Te muestro un
trozo de codigo por si te aburres.

*************************************************
// definir variables de conexion
cn_VFPData is Connection
ds_VFPData is Data Source
sQueryString is string

// rellenar variables
cn_VFPData..User = ""
cn_VFPData..Password = ""
cn_VFPData..Server = "localhost"
cn_VFPData..Database = ""
cn_VFPData..Source = "h:\gestion\bases"
cn_VFPData..Provider = "VFPOLEDB.1"
cn_VFPData..Access = hOReadWrite
cn_VFPData..ExtendedInfo = ""

// abri la conexion
IF NOT HOpenConnection( cn_VFPData ) THEN
DelayBeforeClosing(1000)
Info(HErrorInfo())
return
END


*.- carpeta de base hiperfile
scarpeta is string="C:\My Mobile Projects\gasoil\Exe\"
HChangeDir("*",scarpeta)

// conecto con el poquetpc
lconexio is boolean = ceConnect()
IF lconexio = False THEN
Info("No se puede conectar con PDA",ErrorInfo())
RETURN
END

// importar datos de clientes de fox y grabarlos al PDA

// consulta datos de fox
sQueryString = "SELECT * from clients"
IF NOT HExecuteSQLQuery(ds_VFPData, cn_VFPData, hQueryWithoutCorrection,
sQueryString) THEN
Info(HErrorInfo())
END

*.- sobreescribir y abrir fichero de clientes hiperfile
HCreation(TClients)
HOpen(TClients)

// recorrer la consulta con datos de fox y rellernar fichero hiperfile
// de clientes
HReadFirst(ds_VFPData)
nnumreg is int =0

WHILE NOT HOut(ds_VFPData)
TClients.idclient=ds_VFPData.codcli
TClients.nom=ds_VFPData.nom
TClients.nom_comer=ds_VFPData.nom_comer
TClients.adreca=ds_VFPData.adreca
TClients.poblac=ds_VFPData.poblac
HAdd(TClients)
HReadNext(ds_VFPData)
nnumreg++
END

// enviar nuevo fichero de clientes a la PDA
lresultat is boolean

lresultat =
ceCopyFile(cePCToPocket+ceOverwrite,scarpeta+"clients.*,"\Archivos de
programa\gasoil\")
IF lresultat = false THEN
Info("Error al copiar el fichero de clientes.")
END


//Recuperar fichero de ventas
lresultat = ceCopyFile(cePocketToPC+ceOverwrite,"\Archivos de
programa\gasoil\ventas.*",scarpeta)

************************************************************************************
Hasta aqui todo bien, el problema es que ahora deberia recorrer el
fichero de ventas (no hay problema) y añadir registros al programa de
FOX, y no encuentro como referenciarlo. ya he probado con el comando
'hadd','hchangeconnection',...
Ahora estoy probando con vistas, pero no le encuentro la solución

Gracias por tu ayuda, despues de 20 años con fox me cuesta entender la
filosofia de windev aunque parezca facil.

Saludos
Raül Vidiella
Posted on October, 01 2008 - 1:58 PM
Lo siento no me habia fijado que hexecutesqlquery permite los comandos
insert,update y delete.

Saludos
Raül Vidiella


En/na Raül Vidiella ha escrit:
En/na pat ha escrit:

Hola Raül,

Si utiliza OLEDB, entonces se puede utilizar Hyper-File funciones como hAdd.

Un saludo de Francia

--
pat
http://megustawindev.free.fr




El problema es que no se como referenciar la tabla de fox. Te muestro un
trozo de codigo por si te aburres.

*************************************************
// definir variables de conexion
cn_VFPData is Connection
ds_VFPData is Data Source
sQueryString is string

// rellenar variables
cn_VFPData..User = ""
cn_VFPData..Password = ""
cn_VFPData..Server = "localhost"
cn_VFPData..Database = ""
cn_VFPData..Source = "h:\gestion\bases"
cn_VFPData..Provider = "VFPOLEDB.1"
cn_VFPData..Access = hOReadWrite
cn_VFPData..ExtendedInfo = ""

// abri la conexion
IF NOT HOpenConnection( cn_VFPData ) THEN
DelayBeforeClosing(1000)
Info(HErrorInfo())
return
END


*.- carpeta de base hiperfile
scarpeta is string="C:\My Mobile Projects\gasoil\Exe\"
HChangeDir("*",scarpeta)

// conecto con el poquetpc
lconexio is boolean = ceConnect()
IF lconexio = False THEN
Info("No se puede conectar con PDA",ErrorInfo())
RETURN
END

// importar datos de clientes de fox y grabarlos al PDA

// consulta datos de fox
sQueryString = "SELECT * from clients"
IF NOT HExecuteSQLQuery(ds_VFPData, cn_VFPData, hQueryWithoutCorrection,
sQueryString) THEN
Info(HErrorInfo())
END

*.- sobreescribir y abrir fichero de clientes hiperfile
HCreation(TClients)
HOpen(TClients)

// recorrer la consulta con datos de fox y rellernar fichero hiperfile
// de clientes
HReadFirst(ds_VFPData)
nnumreg is int =0

WHILE NOT HOut(ds_VFPData)
TClients.idclient=ds_VFPData.codcli
TClients.nom=ds_VFPData.nom
TClients.nom_comer=ds_VFPData.nom_comer
TClients.adreca=ds_VFPData.adreca
TClients.poblac=ds_VFPData.poblac
HAdd(TClients)
HReadNext(ds_VFPData)
nnumreg++
END

// enviar nuevo fichero de clientes a la PDA
lresultat is boolean

lresultat =
ceCopyFile(cePCToPocket+ceOverwrite,scarpeta+"clients.*,"\Archivos de
programa\gasoil\")
IF lresultat = false THEN
Info("Error al copiar el fichero de clientes.")
END


//Recuperar fichero de ventas
lresultat = ceCopyFile(cePocketToPC+ceOverwrite,"\Archivos de
programa\gasoil\ventas.*",scarpeta)

************************************************************************************
Hasta aqui todo bien, el problema es que ahora deberia recorrer el
fichero de ventas (no hay problema) y añadir registros al programa de
FOX, y no encuentro como referenciarlo. ya he probado con el comando
'hadd','hchangeconnection',...
Ahora estoy probando con vistas, pero no le encuentro la solución

Gracias por tu ayuda, despues de 20 años con fox me cuesta entender la
filosofia de windev aunque parezca facil.

Saludos
Raül Vidiella