In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Pasar datos a Access

Foro de Xailer profesional en español
Responder
Pablo Herranz
Mensajes: 260
Registrado: Lun Feb 07, 2005 1:20 pm

Pasar datos a Access

Mensaje por Pablo Herranz »

Hola, tengo que pasar un fichero dbf a una bd access,(requerimientos de
la Junta de Extremadura defensora del software libre, jo jo, jo), he
creado un cdxdatasource y su correspondiente dataset, tambien he creado
el odbcdatasource y el odbcdataset, y he desarrollado la rutina:
::oOdbcDataSource1:lConnected:=.t.
::oOdbcDataSet1:SetPrimaryKeys({"id"})
::oOdbcDataSet1:cSelect:="SELECT * FROM Contratos"
::oOdbcDataSet1:lOpen:=.t.
While !::oDbfDataPar:Eof()
If ::oOdbcDataSet1:Append()
::oOdbcDataSet1:tipreg :="C"
::oOdbcDataSet1:codagru :="IO"
.............
.............
.............
.............
::oOdbcDataSet1:Save() // he probado con y sin el save()
endif
::oDbfDataPar:Skip()
enddo
He comprobado que el Append devuelve verdadero, que la bd access esta
conectada, que la dbf la recorre perfectamente, pero no me graba nada
en la tabla ¿me podeis ayudar, no se que hago mal?
Gracias y Saludos
Pablo H.
jrcpoli
Mensajes: 240
Registrado: Mié Oct 25, 2006 8:55 pm

Pasar datos a Access

Mensaje por jrcpoli »

Pablo Herranz escribió:
> Hola, tengo que pasar un fichero dbf a una bd access,(requerimientos
> de la Junta de Extremadura defensora del software libre, jo jo, jo),
> he creado un cdxdatasource y su correspondiente dataset, tambien he
> creado el odbcdatasource y el odbcdataset, y he desarrollado la rutina:
>
> ::oOdbcDataSource1:lConnected:=.t.
> ::oOdbcDataSet1:SetPrimaryKeys({"id"})
> ::oOdbcDataSet1:cSelect:="SELECT * FROM Contratos"
> ::oOdbcDataSet1:lOpen:=.t.
>
> While !::oDbfDataPar:Eof()
>
> If ::oOdbcDataSet1:Append()
> ::oOdbcDataSet1:tipreg :="C"
> ::oOdbcDataSet1:codagru :="IO"
> .............
> .............
> .............
> .............
>
> ::oOdbcDataSet1:Save() // he probado con y sin el save()
> endif
>
>
> ::oDbfDataPar:Skip()
> enddo
>
> He comprobado que el Append devuelve verdadero, que la bd access esta
> conectada, que la dbf la recorre perfectamente, pero no me graba nada
> en la tabla ¿me podeis ayudar, no se que hago mal?
>
> Gracias y Saludos
>
> Pablo H.
>
>
>
Saludos:
Has probado a sustituir el Append por FastAddNew o AddNew y terminar en
lugar de Save con *FastUpdate** o Update
José Ramón Castro.
*
José Ramón Castro.
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9452
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Pasar datos a Access

Mensaje por ignacio »

Pablo,
Te recomiendo que sin duda utilices ADO para la conexión con Access, y los
métodos FastAddNew() y FastUpdate(). Recuerda que los recordsets han de ser
de lectura-escritura.
Un saludo,
"Pablo Herranz" <pablo@ibertabaco.com> escribió en el mensaje de noticias
news:47bec86c$[email=2@ozsrv2.ozlan.local...]2@ozsrv2.ozlan.local...[/email]
> Hola, tengo que pasar un fichero dbf a una bd access,(requerimientos de la
> Junta de Extremadura defensora del software libre, jo jo, jo), he creado
> un cdxdatasource y su correspondiente dataset, tambien he creado el
> odbcdatasource y el odbcdataset, y he desarrollado la rutina:
>
> ::oOdbcDataSource1:lConnected:=.t.
> ::oOdbcDataSet1:SetPrimaryKeys({"id"})
> ::oOdbcDataSet1:cSelect:="SELECT * FROM Contratos"
> ::oOdbcDataSet1:lOpen:=.t.
>
> While !::oDbfDataPar:Eof()
>
> If ::oOdbcDataSet1:Append()
> ::oOdbcDataSet1:tipreg :="C"
> ::oOdbcDataSet1:codagru :="IO"
> ............. ............. ............. .............
> ::oOdbcDataSet1:Save() // he probado con y sin el save()
> endif
>
>
> ::oDbfDataPar:Skip()
> enddo
>
> He comprobado que el Append devuelve verdadero, que la bd access esta
> conectada, que la dbf la recorre perfectamente, pero no me graba nada en
> la tabla ¿me podeis ayudar, no se que hago mal?
>
> Gracias y Saludos
>
> Pablo H.
>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Rolando
Mensajes: 191
Registrado: Lun May 08, 2006 2:10 pm

Pasar datos a Access

Mensaje por Rolando »

Pablo: Access permite importar las tablas .dbf
Saludos
"Pablo Herranz" <pablo@ibertabaco.com> escribió en el mensaje
news:47bec86c$[email=2@ozsrv2.ozlan.local...]2@ozsrv2.ozlan.local...[/email]
> Hola, tengo que pasar un fichero dbf a una bd access,(requerimientos de la
> Junta de Extremadura defensora del software libre, jo jo, jo), he creado
> un cdxdatasource y su correspondiente dataset, tambien he creado el
> odbcdatasource y el odbcdataset, y he desarrollado la rutina:
>
> ::oOdbcDataSource1:lConnected:=.t.
> ::oOdbcDataSet1:SetPrimaryKeys({"id"})
> ::oOdbcDataSet1:cSelect:="SELECT * FROM Contratos"
> ::oOdbcDataSet1:lOpen:=.t.
>
> While !::oDbfDataPar:Eof()
>
> If ::oOdbcDataSet1:Append()
> ::oOdbcDataSet1:tipreg :="C"
> ::oOdbcDataSet1:codagru :="IO"
> ............. ............. ............. .............
> ::oOdbcDataSet1:Save() // he probado con y sin el save()
> endif
>
>
> ::oDbfDataPar:Skip()
> enddo
>
> He comprobado que el Append devuelve verdadero, que la bd access esta
> conectada, que la dbf la recorre perfectamente, pero no me graba nada en
> la tabla ¿me podeis ayudar, no se que hago mal?
>
> Gracias y Saludos
>
> Pablo H.
>
>
>
Responder