posición de un registro

200 views
Skip to first unread message

oscarzu...@gmail.com

unread,
Mar 22, 2022, 5:23:05 PM3/22/22
to Comunidad de Visual Foxpro en Español
quiero saber la posición, de un registro en visual fox pro 

Zarlu

unread,
Mar 22, 2022, 6:21:36 PM3/22/22
to Comunidad de Visual Foxpro en Español
Buenas tardes oscarzuniga783 !

No captó tu planteamiento
Recno() te da el número de registro

Suerte
zarlu
Chetumal, Quintana Roo, México

oscarzu...@gmail.com

unread,
Mar 23, 2022, 2:13:20 PM3/23/22
to Comunidad de Visual Foxpro en Español
lo que quiero  es que por ejemplo dos cliente iguales pero uno esta posicion 10 y otro posicion 20 no quiero comtar registro 

Alejandro Isla

unread,
Mar 23, 2022, 8:18:07 PM3/23/22
to Comunidad de Visual Foxpro en Español
Justamente, recno() te indica la posición del registro, no cuenta nada.

De todas formas, identificar un registro por su posición es realmente llamar al desastre, existen 100.000 formas de que eso se altere sin que vos puedas controlarlo (bueno, un poco exagerado 100.000 :-) )

Si llamas a los registros mediante sql, ya fue tu posición, si hacer un empaquetado de la base, fue tu posición, si se dañó y la recuperas, fue tu posición del registro, o no, es decir, tener que estar rezando para que el programa funcione adecuadamente y no porque el código lo haga.

Resumen, no uses la posición del registro, que se obtiene con la función recno(), para identificar elementos.

Capaz si indicas cual el es objetivo de hacer eso, se te pueda ayudar a hacerlo de mejor forma.

Carlos Miguel FARIAS

unread,
Mar 24, 2022, 9:36:41 AM3/24/22
to Grupo Fox
Usar los registros por su posición no es mala idea, la velocidad de acceso en VFP (y cualquier lenguaje de programación) es O1, lo más rápido posible, pero...
Si usas esta forma, el diseño tiene que estar pensado como un archivo de acceso directo. Eso implica varias consideraciones:
No se pueden borrar físicamente los registros, a lo sumo pueden re-aprovecharse (NO PACK, NO PACK, NO PACK, ...)
No elimina la necesidad de utilizar un índice sobre un campo que contendrá el número de registro, ya que de otra manera, no será óptimo cuando usas SQL y Joins.
Es una alternativa a usar un campo autoincremental, pero al menos este campo te lo provee el sistema, y puedes borrar registros.
Saludos: Miguel

--
Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/318423d4-be72-4668-ab92-a50e316d1154n%40googlegroups.com.

Zarlu

unread,
Mar 24, 2022, 10:31:23 AM3/24/22
to Comunidad de Visual Foxpro en Español
Buenos días oscarzuniga783 !

Si son pocos los registros podrías usar LOCATE y CONTINUE.
O crear un indice por nombre del cliente para usar SelectSQL y obtener los registros idénticos.
Ahora bien como te mencionan los colegas en general no es recomendable tomar como referencia el RECNO() para identificar los registros ya que es un dato cambiante al borrar, consultar, etc...
Si tienes registros idénticos lo recomendable es usar un campo de identificación (ID) unico para cada registro o un campo autoincrementable.
Quizá no sea ortodoxo, pero podrías usar  Sys(2015) + algún dato de expediente si al caso para tener un id único.

Suerte
zarlu
Chetumal, Quintana Roo, México
Reply all
Reply to author
Forward
0 new messages