Página 1 de 1

delete funcina mal en 1.3b

Publicado: Jue Mar 29, 2007 1:52 pm
por PILO
Hola en comando delete de tdbdataset y la funcion set delete on
no pasa al siguiente registro, y si pongo despues skip() salta uno
en la version 1.3b
Puede combrobar si funciona bien, en la 1.2b me saltaba un registro.

delete funcina mal en 1.3b

Publicado: Jue Mar 29, 2007 4:57 pm
por ignacio
Pilo.
Tienes razón. Te adjunto el módulo corregido.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"PILO" <srmpilo@hotmail.com> escribió en el mensaje
news:460ba872$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Hola en comando delete de tdbdataset y la funcion set delete on
> no pasa al siguiente registro, y si pongo despues skip() salta uno
> en la version 1.3b
> Puede combrobar si funciona bien, en la 1.2b me saltaba un registro.
>
>


Attached files DbfDataSet.rar (12.7 KB)Â

delete funcina mal en 1.3b

Publicado: Jue Mar 29, 2007 5:27 pm
por PILO
cuando utilizo el delete entre un while y voy borrando los registros
que estan dentro se queda en el primero y no va al siguiente
con el modulo obj sigue igual

delete funcina mal en 1.3b

Publicado: Jue Mar 29, 2007 5:34 pm
por PILO
Hola ignacio como te he dicho en lo anterior no pasa al siguiente
mi ejemplo e el siguiente por si esto esta mal
with object ::oDbfEntraBaja
:gotop()
do while !:EOF()
NN_OFI := :BAN_OFI
WITH OBJECT ::oDbfDatosAnimal
IF :SEEK( NN_OFI )
:DELETE() // este funciona bien
END IF
end with
:DELETE() // Este funciona mal, no pasa al siguiente registro en el mani() del programa esta set delete on
end while
end with
Para si te sirve de informacion
--

delete funcina mal en 1.3b

Publicado: Jue Mar 29, 2007 5:53 pm
por PILO
Poniendo el set deleted on de nuevo antes del eof()
me funciona bien,
Como lo tendria que poner al principio del programa para que sirva para todos
"PILO" <srmpilo@hotmail.com> escribió en el mensaje news:460bdc8f$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Hola ignacio como te he dicho en lo anterior no pasa al siguiente
mi ejemplo e el siguiente por si esto esta mal
with object ::oDbfEntraBaja
:gotop()
do while !:EOF()
NN_OFI := :BAN_OFI
WITH OBJECT ::oDbfDatosAnimal
IF :SEEK( NN_OFI )
:DELETE() // este funciona bien
END IF
end with
:DELETE() // Este funciona mal, no pasa al siguiente registro en el mani() del programa esta set delete on
end while
end with
Para si te sirve de informacion
--

delete funcina mal en 1.3b

Publicado: Jue Mar 29, 2007 5:58 pm
por miguel
Yo lo tengo de esta manera:
Procedure Main()
REQUEST HB_LANG_ES // para mensajes
HB_LANGSELECT( "ES" )
REQUEST HB_CODEPAGE_ESMWIN // para ordenación de indices
HB_SetCodePage( "ESMWIN" )
set date format to "dd/mm/yyyy"
set epoch to 1980
set deleted on
SET DECIMALS TO 2
Application:cTitle := "Titulo de la Aplicación"
TPrincipal():New( Application ):Show()
Application:Run()
Return
Saludos. Miguel A. Torrellas
PILO escribió:
> Poniendo el set deleted on de nuevo antes del eof()
> me funciona bien,
> Como lo tendria que poner al principio del programa para que sirva para
> todos
>
>
> "PILO" <srmpilo@hotmail.com <mailto:srmpilo@hotmail.com>> escribió
> en el mensaje news:460bdc8f$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Hola ignacio como te he dicho en lo anterior no pasa al siguiente
> mi ejemplo e el siguiente por si esto esta mal
>
> with object ::oDbfEntraBaja
> :gotop()
> do while !:EOF()
> NN_OFI := :BAN_OFI
> WITH OBJECT ::oDbfDatosAnimal
> IF :SEEK( NN_OFI )
> :DELETE() // este funciona bien
> END IF
> end with
> :DELETE() // Este funciona mal, no pasa al siguiente
> registro en el mani() del programa esta set delete on
> end while
> end with
> Para si te sirve de informacion

delete funcina mal en 1.3b

Publicado: Vie Mar 30, 2007 9:59 am
por ignacio
Pilo,
Con SET DELETED ON deberí­a hacerte el SKIP, está comprobado. Asegurate de que estas linkado el módulo OBJ y si sigue sin funcionar intenta actualizar la librerí­a Xailer.lib con dicho módulo. Sino sabes hacerlo te preparo una Xailer.lib nueva.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"PILO" <srmpilo@hotmail.com> escribió en el mensaje news:[email=460be0f2@ozsrv2.ozlan.local...]460be0f2@ozsrv2.ozlan.local...[/email]
Poniendo el set deleted on de nuevo antes del eof()
me funciona bien,
Como lo tendria que poner al principio del programa para que sirva para todos
"PILO" <srmpilo@hotmail.com> escribió en el mensaje news:460bdc8f$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Hola ignacio como te he dicho en lo anterior no pasa al siguiente
mi ejemplo e el siguiente por si esto esta mal
with object ::oDbfEntraBaja
:gotop()
do while !:EOF()
NN_OFI := :BAN_OFI
WITH OBJECT ::oDbfDatosAnimal
IF :SEEK( NN_OFI )
:DELETE() // este funciona bien
END IF
end with
:DELETE() // Este funciona mal, no pasa al siguiente registro en el mani() del programa esta set delete on
end while
end with
Para si te sirve de informacion
--

delete funcina mal en 1.3b

Publicado: Vie Mar 30, 2007 10:18 am
por PILO

Con SET DELETED ON deberí­a hacerte el SKIP, está comprobado. Asegurate de que estas linkado el módulo OBJ y si sigue sin funcionar intenta actualizar la librerí­a Xailer.lib con dicho módulo. Sino sabes hacerlo te preparo una Xailer.lib nueva.
SET DELETED ON //PONGO AGUI Y ESTO FUNCIONA, TAMBIEN HE PUESTO SET DELETED EN EL MAIN() DEL PROGRAMA
with object ::oDbfEntraBaja
:gotop()
do while !:EOF()
NN_OFI := :BAN_OFI
WITH OBJECT ::oDbfDatosAnimal
IF :SEEK( NN_OFI )
:DELETE() END IF
end with
:DELETE()
end while
end with
En este ejemplo de tres registro por ejemplo, se borra el primero pero cuando hace el delete en vez de pasarse al se gundo registro, se pasa al tercero y me deja sin borrar el segundo, para poder hacerlo bien he hecho lo siguiente:
do while !:EOF()
NN_OFI := :BAN_OFI
WITH OBJECT ::oDbfDatosAnimal
IF :SEEK( NN_OFI )
:DELETE() END IF
end with
:DELETE()
:gotop()
end while
end with
¿Se puede corregir esto?
Para si te sirve de informacion
--

delete funcina mal en 1.3b

Publicado: Vie Mar 30, 2007 10:18 am
por PILO
Asi lo tengo puesto, Gracias
"Miguel A. Torrellas" <miguel@torrellas.net> escribió en el mensaje
news:460be24c$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Yo lo tengo de esta manera:
>
> Procedure Main()
> REQUEST HB_LANG_ES // para mensajes
> HB_LANGSELECT( "ES" )
>
> REQUEST HB_CODEPAGE_ESMWIN // para ordenación de indices
> HB_SetCodePage( "ESMWIN" )
>
> set date format to "dd/mm/yyyy"
> set epoch to 1980
> set deleted on
> SET DECIMALS TO 2
>
> Application:cTitle := "Titulo de la Aplicación"
> TPrincipal():New( Application ):Show()
> Application:Run()
>
> Return
>
> Saludos. Miguel A. Torrellas
>
> PILO escribió:
>> Poniendo el set deleted on de nuevo antes del eof()
>> me funciona bien,
>> Como lo tendria que poner al principio del programa para que sirva para
>> todos
>> "PILO" <srmpilo@hotmail.com <mailto:srmpilo@hotmail.com>> escribió
>> en el mensaje news:460bdc8f$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Hola ignacio como te he dicho en lo anterior no pasa al siguiente
>> mi ejemplo e el siguiente por si esto esta mal
>> with object ::oDbfEntraBaja
>> :gotop()
>> do while !:EOF()
>> NN_OFI := :BAN_OFI
>> WITH OBJECT ::oDbfDatosAnimal
>> IF :SEEK( NN_OFI )
>> :DELETE() // este funciona bien
>> END IF
>> end with
>> :DELETE() // Este funciona mal, no pasa al siguiente
>> registro en el mani() del programa esta set delete on
>> end while
>> end with
>> Para si te sirve de informacion

delete funcina mal en 1.3b

Publicado: Vie Mar 30, 2007 10:23 am
por PILO
Puedes Explicar como se añade a la lib
Gracias
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje news:460cc355$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Pilo,
Con SET DELETED ON deberí­a hacerte el SKIP, está comprobado. Asegurate de que estas linkado el módulo OBJ y si sigue sin funcionar intenta actualizar la librerí­a Xailer.lib con dicho módulo. Sino sabes hacerlo te preparo una Xailer.lib nueva.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"PILO" <srmpilo@hotmail.com> escribió en el mensaje news:[email=460be0f2@ozsrv2.ozlan.local...]460be0f2@ozsrv2.ozlan.local...[/email]
Poniendo el set deleted on de nuevo antes del eof()
me funciona bien,
Como lo tendria que poner al principio del programa para que sirva para todos
"PILO" <srmpilo@hotmail.com> escribió en el mensaje news:460bdc8f$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Hola ignacio como te he dicho en lo anterior no pasa al siguiente
mi ejemplo e el siguiente por si esto esta mal
with object ::oDbfEntraBaja
:gotop()
do while !:EOF()
NN_OFI := :BAN_OFI
WITH OBJECT ::oDbfDatosAnimal
IF :SEEK( NN_OFI )
:DELETE() // este funciona bien
END IF
end with
:DELETE() // Este funciona mal, no pasa al siguiente registro en el mani() del programa esta set delete on
end while
end with
Para si te sirve de informacion
--

delete funcina mal en 1.3b

Publicado: Vie Mar 30, 2007 10:29 am
por ignacio
TLIB LibName -+ Modulo
Saludos
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"PILO" <srmpilo@hotmail.com> escribió en el mensaje news:460cc8dc$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Puedes Explicar como se añade a la lib
Gracias
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje news:460cc355$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Pilo,
Con SET DELETED ON deberí­a hacerte el SKIP, está comprobado. Asegurate de que estas linkado el módulo OBJ y si sigue sin funcionar intenta actualizar la librerí­a Xailer.lib con dicho módulo. Sino sabes hacerlo te preparo una Xailer.lib nueva.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"PILO" <srmpilo@hotmail.com> escribió en el mensaje news:[email=460be0f2@ozsrv2.ozlan.local...]460be0f2@ozsrv2.ozlan.local...[/email]
Poniendo el set deleted on de nuevo antes del eof()
me funciona bien,
Como lo tendria que poner al principio del programa para que sirva para todos
"PILO" <srmpilo@hotmail.com> escribió en el mensaje news:460bdc8f$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Hola ignacio como te he dicho en lo anterior no pasa al siguiente
mi ejemplo e el siguiente por si esto esta mal
with object ::oDbfEntraBaja
:gotop()
do while !:EOF()
NN_OFI := :BAN_OFI
WITH OBJECT ::oDbfDatosAnimal
IF :SEEK( NN_OFI )
:DELETE() // este funciona bien
END IF
end with
:DELETE() // Este funciona mal, no pasa al siguiente registro en el mani() del programa esta set delete on
end while
end with
Para si te sirve de informacion
--

delete funcina mal en 1.3b

Publicado: Vie Mar 30, 2007 10:37 am
por Xevi
PILO,
Si guardas el fichero obj en la carpeta Lib de Xailer...
C:XailerBorlandbcc55bintlib xailer -+DbfDataSet
Si tienes el fichero obj en otra carpeta...
C:XailerBorlandbcc55bintlib
C:XailerLibxailer -+CarpetaOBJDbfDataSet
Un Saludo,
Xevi.
"PILO" <srmpilo@hotmail.com> escribió en el mensaje
news:460cc8dc$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Puedes Explicar como se añade a la lib
Gracias
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:460cc355$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Pilo,
Con SET DELETED ON debería hacerte el SKIP, está comprobado. Asegurate de
que estas linkado el módulo OBJ y si sigue sin funcionar intenta actualizar
la librería Xailer.lib con dicho módulo. Sino sabes hacerlo te preparo una
Xailer.lib nueva.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"PILO" <srmpilo@hotmail.com> escribió en el mensaje
news:[email=460be0f2@ozsrv2.ozlan.local...]460be0f2@ozsrv2.ozlan.local...[/email]
Poniendo el set deleted on de nuevo antes del eof()
me funciona bien,
Como lo tendria que poner al principio del programa para que sirva para
todos
"PILO" <srmpilo@hotmail.com> escribió en el mensaje
news:460bdc8f$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Hola ignacio como te he dicho en lo anterior no pasa al siguiente
mi ejemplo e el siguiente por si esto esta mal
with object ::oDbfEntraBaja
:gotop()
do while !:EOF()
NN_OFI := :BAN_OFI
WITH OBJECT ::oDbfDatosAnimal
IF :SEEK( NN_OFI )
:DELETE() // este funciona bien
END IF
end with
:DELETE() // Este funciona mal, no pasa al siguiente
registro en el mani() del programa esta set delete on
end while
end with
Para si te sirve de informacion

delete funcina mal en 1.3b

Publicado: Vie Mar 30, 2007 11:25 am
por PILO
Me puedes dar una respuesta ha este error
"PILO" <srmpilo@hotmail.com> escribió en el mensaje news:[email=460cc7be@ozsrv2.ozlan.local...]460cc7be@ozsrv2.ozlan.local...[/email]
Con SET DELETED ON deberí­a hacerte el SKIP, está comprobado. Asegurate de que estas linkado el módulo OBJ y si sigue sin funcionar intenta actualizar la librerí­a Xailer.lib con dicho módulo. Sino sabes hacerlo te preparo una Xailer.lib nueva.
SET DELETED ON //PONGO AGUI Y ESTO FUNCIONA, TAMBIEN HE PUESTO SET DELETED EN EL MAIN() DEL PROGRAMA
with object ::oDbfEntraBaja
:gotop()
do while !:EOF()
NN_OFI := :BAN_OFI
WITH OBJECT ::oDbfDatosAnimal
IF :SEEK( NN_OFI )
:DELETE() END IF
end with
:DELETE()
end while
end with
En este ejemplo de tres registro por ejemplo, se borra el primero pero cuando hace el delete en vez de pasarse al se gundo registro, se pasa al tercero y me deja sin borrar el segundo, para poder hacerlo bien he hecho lo siguiente:
do while !:EOF()
NN_OFI := :BAN_OFI
WITH OBJECT ::oDbfDatosAnimal
IF :SEEK( NN_OFI )
:DELETE() END IF
end with
:DELETE()
:gotop()
end while
end with
¿Se puede corregir esto?
Para si te sirve de informacion
--

delete funcina mal en 1.3b

Publicado: Vie Mar 30, 2007 11:44 am
por ignacio
Pilo,
DO WHILE :SEEK( NN_OFI )
:DELETE()
ENDDO
Saludos
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"PILO" <srmpilo@hotmail.com> escribió en el mensaje news:460cd798$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Me puedes dar una respuesta ha este error
"PILO" <srmpilo@hotmail.com> escribió en el mensaje news:[email=460cc7be@ozsrv2.ozlan.local...]460cc7be@ozsrv2.ozlan.local...[/email]
Con SET DELETED ON deberí­a hacerte el SKIP, está comprobado. Asegurate de que estas linkado el módulo OBJ y si sigue sin funcionar intenta actualizar la librerí­a Xailer.lib con dicho módulo. Sino sabes hacerlo te preparo una Xailer.lib nueva.
SET DELETED ON //PONGO AGUI Y ESTO FUNCIONA, TAMBIEN HE PUESTO SET DELETED EN EL MAIN() DEL PROGRAMA
with object ::oDbfEntraBaja
:gotop()
do while !:EOF()
NN_OFI := :BAN_OFI
WITH OBJECT ::oDbfDatosAnimal
IF :SEEK( NN_OFI )
:DELETE() END IF
end with
:DELETE()
end while
end with
En este ejemplo de tres registro por ejemplo, se borra el primero pero cuando hace el delete en vez de pasarse al se gundo registro, se pasa al tercero y me deja sin borrar el segundo, para poder hacerlo bien he hecho lo siguiente:
do while !:EOF()
NN_OFI := :BAN_OFI
WITH OBJECT ::oDbfDatosAnimal
IF :SEEK( NN_OFI )
:DELETE() END IF
end with
:DELETE()
:gotop()
end while
end with
¿Se puede corregir esto?
Para si te sirve de informacion
--

delete funcina mal en 1.3b

Publicado: Vie Mar 30, 2007 3:03 pm
por PILO
Ignacio, sigue dando este error
SET DELETED ON //PONGO AGUI Y ESTO FUNCIONA, TAMBIEN HE PUESTO SET DELETED EN EL MAIN() DEL PROGRAMA
with object ::oDbfEntraBaja
:gotop()
do while !:EOF()
:DELETE()
end while
end with
En este ejemplo de tres registro por ejemplo, se borra el primero pero cuando hace el delete en vez de pasarse al se gundo registro, se pasa al tercero y me deja sin borrar el segundo, para poder hacerlo bien he hecho lo siguiente:
do while !:EOF()
NN_OFI := :BAN_OFI
WITH OBJECT ::oDbfDatosAnimal
:DELETE()
:gotop()
end while
end with
Esta parte hace lo que yo quiero cuando borro el registro se va al siguiente no del borrado sino de que queda
sin borrar, por lo tanto salta 1 registros y con esta opcion consigo que se vaya al primero que queda y así­ me borra
todo los registros, es normal esto
¿Se puede corregir esto?
Para si te sirve de informacion
--

delete funcina mal en 1.3b

Publicado: Vie Mar 30, 2007 5:12 pm
por ignacio
Pilo,
Manda un ejemplo. Gracias
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"PILO" <srmpilo@hotmail.com> escribió en el mensaje news:460d0a97$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Ignacio, sigue dando este error
SET DELETED ON //PONGO AGUI Y ESTO FUNCIONA, TAMBIEN HE PUESTO SET DELETED EN EL MAIN() DEL PROGRAMA
with object ::oDbfEntraBaja
:gotop()
do while !:EOF()
:DELETE()
end while
end with
En este ejemplo de tres registro por ejemplo, se borra el primero pero cuando hace el delete en vez de pasarse al se gundo registro, se pasa al tercero y me deja sin borrar el segundo, para poder hacerlo bien he hecho lo siguiente:
do while !:EOF()
NN_OFI := :BAN_OFI
WITH OBJECT ::oDbfDatosAnimal
:DELETE()
:gotop()
end while
end with
Esta parte hace lo que yo quiero cuando borro el registro se va al siguiente no del borrado sino de que queda
sin borrar, por lo tanto salta 1 registros y con esta opcion consigo que se vaya al primero que queda y así­ me borra
todo los registros, es normal esto
¿Se puede corregir esto?
Para si te sirve de informacion
--