Tengo este extra�o caso con el uso de SEEK() / Replace:
(Caso 1 - Como lo ten�a inicialmente)
SELECT TABLA
IF SEEK(<Dato1>,'TABLA','INDICE')
REPLACE TABLA.CAMPO WITH <Dato2>
ELSE
INSERT INTO TABLA VALUES (X, Y, Z)
REPLACE TABLA.CAMPO WITH <Dato2>
ENDIF
(Caso 2 - Mejorando el c�digo)
IF !SEEK(<Dato1>,'TABLA','INDICE')
INSERT INTO TABLA VALUES (X, Y, Z)
ENDIF
REPLACE TABLA.CAMPO WITH <Dato2>
***
* Problema: En ninguno de los casos la tabla TABLA se actualizaba o
insertaba el registro... al menos no la primera vez que se ejecuta, la
segunda vez (dos veces consecutivas) que se ejecutaba, si lo insertaba
adecuadamente; ahora bien:
(Caso 3 - Infalible)
Si se indica un GO TOP antes del SEEK(...) TODO funciona perfectamente. Que
extra�o no?
Alguien tiene alguna sugerencia o explicaci�n?
Gracias por anticipado!
--
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
~FCG~
Felix Berto Castillo G.
La Vega, Rep. Dom.
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
--
Dario David Puccio
El Cyber_Gaucho
www.chispazodetradicion.com.ar
"F�lix Berto Castillo G." <felixbcastillo_AT_codetel.net.do> escribi� en el
mensaje news:Oc4wKyG$JHA....@TK2MSFTNGP02.phx.gbl...
En el caso del REPLACE mejor es:
REPLACE Campo WITH Dato IN Tabla
--
Luis Mar�a Guay�n
Tucum�n, Argentina
________________________________
SysOp de www.PortalFox.com
Microsoft Visual FoxPro MVP
________________________________
La palabra imposible solo figura
en el diccionario de los tontos
"F�lix Berto Castillo G." <felixbcastillo_AT_codetel.net.do> escribi� en el
mensaje de noticias:Oc4wKyG$JHA....@TK2MSFTNGP02.phx.gbl...
Tengo una ventana (1) con "sesi�n de datos privada" y el c�digo est� en una
ventana (2) que se abre a partir de �sa (1), pero que no tiene sesi�n de
datos privada, o sea, que debe compartir las mismas tablas ya abiertas en la
ventana inicial (1), en ninguno de los casos estoy usando buffering.
Gracias por responder a todos...
--
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
~FCG~
Felix Berto Castillo G.
La Vega, Rep. Dom.
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
"Luis Maria Guayan" <luis...@portalfoxxx.com> wrote in message
news:%23z1WVTL$JHA....@TK2MSFTNGP03.phx.gbl...
"F�lix Berto Castillo G." <felixbcastillo_AT_codetel.net.do> escribi� en el
mensaje news:e$Fw7jM$JHA....@TK2MSFTNGP02.phx.gbl...
Saludos
Ra锟絣 Vidiella
En/na F锟絣ix Berto Castillo G. ha escrit:
> Saludos!
>
> Tengo este extra锟給 caso con el uso de SEEK() / Replace:
> (Caso 1 - Como lo ten锟絘 inicialmente)
> SELECT TABLA
> IF SEEK(<Dato1>,'TABLA','INDICE')
> REPLACE TABLA.CAMPO WITH <Dato2>
> ELSE
> INSERT INTO TABLA VALUES (X, Y, Z)
> REPLACE TABLA.CAMPO WITH <Dato2>
> ENDIF
>
> (Caso 2 - Mejorando el c锟絛igo)
> IF !SEEK(<Dato1>,'TABLA','INDICE')
> INSERT INTO TABLA VALUES (X, Y, Z)
> ENDIF
> REPLACE TABLA.CAMPO WITH <Dato2>
>
> ***
> * Problema: En ninguno de los casos la tabla TABLA se actualizaba o
> insertaba el registro... al menos no la primera vez que se ejecuta, la
> segunda vez (dos veces consecutivas) que se ejecutaba, si lo insertaba
> adecuadamente; ahora bien:
>
> (Caso 3 - Infalible)
> Si se indica un GO TOP antes del SEEK(...) TODO funciona perfectamente. Que
> extra锟給 no?
>
> Alguien tiene alguna sugerencia o explicaci锟絥?
> Gracias por anticipado!
>
Gracias Ra�l
--
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
~FCG~
Felix Berto Castillo G.
La Vega, Rep. Dom.
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
"Ra�l Vidiella" <no_s...@jodt.com> wrote in message
news:Oht$Hql$JHA....@TK2MSFTNGP02.phx.gbl...
> En el primer caso tienes un SELECT TABLA en el segundo no. Seg�n mi
> experiencia el comando REPLACE tiene algun fallo en el caso en que la
> tabla actual este en eof(), no suele realizar el replace, para evitar esto
> utiliza la clausula IN TABLA al Utilizar el comando REPLACE.
>
> Saludos
> Ra�l Vidiella
>
>
> En/na F�lix Berto Castillo G. ha escrit:
>> Saludos!
>>
>> Tengo este extra�o caso con el uso de SEEK() / Replace:
>> (Caso 1 - Como lo ten�a inicialmente)
>> SELECT TABLA
>> IF SEEK(<Dato1>,'TABLA','INDICE')
>> REPLACE TABLA.CAMPO WITH <Dato2>
>> ELSE
>> INSERT INTO TABLA VALUES (X, Y, Z)
>> REPLACE TABLA.CAMPO WITH <Dato2>
>> ENDIF
>>
>> (Caso 2 - Mejorando el c�digo)
>> IF !SEEK(<Dato1>,'TABLA','INDICE')
>> INSERT INTO TABLA VALUES (X, Y, Z)
>> ENDIF
>> REPLACE TABLA.CAMPO WITH <Dato2>
>>
>> ***
>> * Problema: En ninguno de los casos la tabla TABLA se actualizaba o
>> insertaba el registro... al menos no la primera vez que se ejecuta, la
>> segunda vez (dos veces consecutivas) que se ejecutaba, si lo insertaba
>> adecuadamente; ahora bien:
>>
>> (Caso 3 - Infalible)
>> Si se indica un GO TOP antes del SEEK(...) TODO funciona perfectamente.