FoxPro/Visual FoxPro - : ) ....ya casi logro mi objetivo!!!

 
Vista:

: ) ....ya casi logro mi objetivo!!!

Publicado por RODRIGO FLORES (14 intervenciones) el 27/06/2006 07:53:06
HOLA como estan...gracias a Ernesto,Guillermo y Carlos por su atencion y guia ,mas o menos casi logrado mi cometido...digo mas o menos por q me falta solo una cosilla...mi problema era copiar un campo con todos sus registros de una tabla origen a otra tabla nueva sin la necesidad de copiar tooooda la estructura de la tabla original,unicamente el campo q deceo con sus respectivos registros...pero ademas eliminar el primer caracter de cada registro esto es debido a q el primer caracter es por algun error o motivo un simbolo ASCII colado,por lo q deseo eliminarlo....por lo q logre lo siguiente:

*logre copIAr de una tabla original con mas de 21 campos, copiar unicamente el campo Cdetalle(la tabla original se llama ARTICULO) q es el q me importa,con todos sus 587 registros y modificar el contenido de los registros eliminando el primer caracter "non grato" pero...... solo una cosilla..jeje.....el primer registro se copia en todos los demas registros es decir el primer registro aparece en lso 587 osea solo el primero se copia(ya corregido claro) y llena el espacio de el resto (586) copiandose a si mismo....me falta algo en mi codigo para hacer q corra el puntero o algo asi por q veo q solo toma en cuenta el primer registro y me lo multiplica en todos los demas registros mas sin embargo la cantidad de veces q me lo agrega coincide con la cantidad de registros q existen en la tabla original...porfavor ayudenme solo me falta corregir ese detalle...acontinuacion dejare el codigo q empleo para lo q hice...porfavor si le falta algo o me sobra o tiene una version mejorada de mi codigo ..porfavor porfavor publiquenlo....; P

use articulo alias art in 0
use tablan alias tabla in 1
do while not eof()
select 1
scan
replace tabla.cdet with substr(art.Cdetalle,2)
endscan
enddo
close tables
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:: ) ....ya casi logro mi objetivo!!!

Publicado por Plinio (7841 intervenciones) el 27/06/2006 12:10:26
Un codigo mas limpio
SELEC 0 &&Dejo que seleccione el numero de area
USE articulo AGAIN ALIAS articulo
SELEC 0
USE tablan AGAIN ALIAS tablan

SELEC articulo
DO WHILE !EOF() &&o uso un DO WHILE o un SCAN no ambos
INSERT INTO tablan (cdet);
SUBSTR(articulo.cDetalle,2,100)

SELEC articulo
SKIP
ENDDO
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

RE:: ) ....ya casi logro mi objetivo!!!

Publicado por rodrigo flores (14 intervenciones) el 27/06/2006 16:20:38
mmmm...me marca error de sintaxis en el insert into.....mmm q no falta un values o algo asi cuanod se usa ese comando?...ya le puse pero me sigue marcando error de sintaxis ya revice en el msdn pero veo q esta bien la sintaxis de "insert to"....por q me marcara error de sintaxis?
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

RE:: ) ....ya casi logro mi objetivo!!!

Publicado por Plinio (7841 intervenciones) el 27/06/2006 17:15:10
Uff, se me escapó.
NSERT INTO tablan (cdet);
values (SUBSTR(articulo.cDetalle,2,100) )
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:: ) ....ya casi logro mi objetivo!!!

Publicado por Ernesto Hernandez (4623 intervenciones) el 27/06/2006 18:15:23
Solo te faltaba el skip y utilizar el DO WHILE o el SCAN no los 2 juntos

use articulo alias art in 0
use tablan alias tabla in 1
do while not eof()
select 1
replace tabla.cdet with substr(art.Cdetalle,2)
skip
enddo
close tables

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

RE:: ) ....ya casi logro mi objetivo!!!

Publicado por Carlos Ayala G (169 intervenciones) el 27/06/2006 20:43:08
Hola Amigo aver si te ayudo

use articulo
use tablan
****************************
select articulo
go top
scan for not eof()
select articulo
xdat=substr(art.Cdetalle,2) &&& el valor que vas a insertar
insert into tablan (cdet) values (xdat)
endscan

*******************
tu falla es que estas aciendo bicles innesesarios con este codigo que te paso creoq que podras solucionar solo si no estas insertand cambialo por un UPDATE ok ojala t haya ayudado
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