SoloCodigo

Programación General => Visual FoxPro => Mensaje iniciado por: memorian en Miércoles 26 de Octubre de 2005, 13:26

Título: Rellenar Numeros En Un Campo Incrementalmente
Publicado por: memorian en Miércoles 26 de Octubre de 2005, 13:26
Buenas,

Soy un poco novatillo en el tema, a ver si alguno me podeis echar un cable...

Resulta que ya tengo la tabla ordenada como yo quiero, y ahora quiero que según esta, meter un valor numérico en un campo, que se vaya incrementando automaticamente: 1, 2, 3.... Asi que ordenando la tabla por ese campo consiga el mismo orden, y luego pueda operar con el.

Gracias.
Título: Re: Rellenar Numeros En Un Campo Incrementalmente
Publicado por: Pompeu en Miércoles 26 de Octubre de 2005, 21:04
Hola

Bueno, solo puede en VFP 8 en adelante. Caso contrario, solo puede
com campo + 1
e replace nombredetabla.nombredecampo with  nombredetabla.nombredecampo  + 1.
No olvides por favor, o campodetabla debe ser numerico


saludos

Pompeu
Título: Re: Rellenar Numeros En Un Campo Incrementalmente
Publicado por: memorian en Jueves 27 de Octubre de 2005, 09:07
Gracias por responder.
Título: Re: Rellenar Numeros En Un Campo Incrementalmente
Publicado por: memorian en Jueves 27 de Octubre de 2005, 09:08
Pues la instruccion si que rula, tengo VFP 8.

Esto es lo que pensado y he puesto en la ventana de comandos, y ahora me pone error de sintaxis:

registro = 1;
go top;
do while not eof ();
REPLACE test.orden1 WITH  registro;
registro = registro +1;
GO record registro;
enddo


Por cierto, cuando dice que no esta permitido en modo interactivo, donde lo tengo que escribir???? No hay algun truco para poner varias lineas de código a ejecutar a traves de la ventana de comandos???  (ya dije que soy un poco novatillo) :)

Saludos y gracias.
Título: Re: Rellenar Numeros En Un Campo Incrementalmente
Publicado por: arielb en Jueves 27 de Octubre de 2005, 15:57
Bueno lo podes hacer de esta forma le creas a esa tabla un indice, indexando el campo como val()

para recorrerlo

Código: Text
  1. select tabla  && seleccionas la tabla donde está el campo que vas aumentar
  2. set order nombre_del_indice  && lo ordenas numericamente
  3. go bottom &&lo llevas al último registro
  4. registro = tabla.campo_indizado +1  && y el último registro le sumas 1
  5. REPLACE test.orden1 WITH registro
  6.  


en visual fox pro el punto y coma ; es utilizado para indicar que una sentencia sigue en la linea de abajo, por ese motivo te está mandando error de sintaxis.

espero te sirva
Título: Re: Rellenar Numeros En Un Campo Incrementalmente
Publicado por: Pompeu en Jueves 27 de Octubre de 2005, 18:05
Hola

El códio de Juez es mui correcto. Pero hay un campo de auto-incremento
nactivo en vfp 8 atente para la creaction de banco de datos(tablas) en help file
(fichero de ayuda).
Se puede encontrarlo en www.portalfox.com (http://www.portalfox.com) en España si tu no lo tienes en
castellano.

Saludos


Pompeu