FoxPro/Visual FoxPro - remplaza datos de campo

 
Vista:

remplaza datos de campo

Publicado por Ramon (81 intervenciones) el 19/05/2009 20:00:01
TENGO UNA TABLA DE DATOS QUE CONTIENE 1730 REGISTROS... CON UN CAMPO LLAMADO determ y todos sus registros inician por 127... este es un ejemplo.

127.DDR.01.01.02
127.DDR.21.02.03
127.DDR.41.04.04
127.DDR.30.08.05

Lo que deseo es cambiarlos todos y que inicien por 139 ASI

139.DDR.01.01.02
139.DDR.21.02.03
139.DDR.41.04.04
139.DDR.30.08.05

ya probe con lo siguiente haciendo un pequeño prg... que diga asi...
local cl
cl=""
use determinantes
go top
do while !eof()
cl=Substr(Alltr(determ),5,11) &se Posesiona en 5 y extrae 11
replace determ with '139.'+cl
skip
Enddo

o como debo hacerle....???
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:remplaza datos de campo

Publicado por es_binario (757 intervenciones) el 19/05/2009 20:39:30
Personalmente prefiero las instrucciones SQL son mas veloces en y el usarlas mas significa que podras migrar tus aplicaciones a otros motores de bases de datos, sin mucho problema.

SQL seria asi

Update tabla set determ = "139" + RTRIM(right(determ,LEN(determ)-3))

De la forma tradicional

local cadena
cadena = ""
Select tabla1
for a = 1 to reccount() && me gusta mas el for
go a
cadena = "139" + RTRIM(right(tabla.determ,LEN(tabla.determ)-3))
replace tabla.determ with cadena
Endfor

esta esta muchos mas larga pero ambas funcionan bien, te recomiendo que uses mas las intrucciones sql, yo tengo tablas con 300 mil registros y actualiza en menos de 1 segundo.

Por eso me gusta Foxpro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

RE:remplaza datos de campo

Publicado por Ernesto Hernandez (4623 intervenciones) el 19/05/2009 20:41:01
local cl
cl=""
CONST="139." <<=== agregado
use determinantes
go top
do while !eof()
cl=Substr(Alltr(determ),5,11) &se Posesiona en 5 y extrae 11
REPLACE DETERM WITH const+cl <<= OJO
skip
Enddo


PRUEBA ASI

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 29
Ha aumentado su posición en 3 puestos en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

RE:remplaza datos de campo

Publicado por Javier (271 intervenciones) el 19/05/2009 20:43:27
Tendrías que poner 12 en lugar de 11, porque substr() comienza a contar desde el caracter nro. 5.

De todas formas sin hacer un programa podrías ejecutar lo siguiente:

USE DETERMINANTES
REPLACE ALL DETERMIN WITH "139." + SubStr( DETERMIN, 5 )

Si no indicas la cantidad (3er parámetro) en el substr, extrae todos los caracteres hasta el final de la cadena.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar