Cursores y tablas que quedan abiertas

27/04/2005 - 10:53 por Ana María Bisbé York | Informe spam
Hola:

Esto debe ser de primaria; pero la verdad es que no lo veo. A ver si alguien
encuentra el fallo. VFP 6.0.
Intento que todo esté cerrado y que el INSERT INTO se realice en el cursor
CurTodasCuentas; pero se hace en CuenNue.
Casi todas las instrucciones USE IN las he puesto luego para forzar que todo
este bien cerrado.

*!* Cargamos el cursor con las cuentas nuevas definidas en CuenNue
USE IN SELECT ('CurTemporal')
SELECT cuenta ,cuennueiD FROM 'CuenNue' INTO CURSOR curTemporal
USE IN SELECT ('CuenNue')

****** Si pregunto por dbf() me devuelve CueNue !!!!

*!* Añadir la cuenta predeterminada
IF _TALLY <> 0
USE IN SELECT ('CurTodasCuentas')
****** Si pregunto por dbf() me devuelve cadena vacía

USE DBF("curtemporal") IN 0 AGAIN ALIAS curTodasCuentas
USE IN SELECT ('CurTemporal')

****** Si pregunto por dbf() me devuelve CueNue !!!!

IF USED("curTodasCuentas")
SELECT ('CurTodasCuentas')
INSERT INTO 'CurTodasCuentas' (cuenta, cuennueiD) VALUES
('Predeterminada', 0)

****** Si pregunto por dbf() me devuelve CueNue !!!! Se agrega al cursor y a
la tabla CuenNue !!!!!

endif
*etc etc
ENDIF


Este código lo tengo en otro lugar de la aplicación y funciona bien; pero
ahora que me he detenido a ver resulta que DBF() está apuntando a un TMP por
tanto no me afecta.

Debe haber algún problema de tratamiento de cursores y sus tablas de origen,
¿alguien lo ve?


Saludos,

Ana
www.amby.net

Preguntas similare

Leer las respuestas

#6 Ana María Bisbé York
28/04/2005 - 07:47 | Informe spam
Gracias Nacho, por el interés y por los intentos previos que hicimos por
solucionarlo.

Como tu sabes, ya estaba listo cambiando el destino a INTO TABLE; pero esa
variante no me gusta por tener que estar pendiente de eliminar la tabla.

Gracias por todo,


Saludos,

Ana
www.amby.net

"Nacho" escribió en el mensaje
news:
Ana, no sabia que esa cláusula estaba en la versión 6, por lo cual me uno


a
lo que comenta Carlos, como la solución mas "limpia".

Salu2
Nacho

"Ana María Bisbé York" escribió en el mensaje
news:
> Hola:
>
> Esto debe ser de primaria; pero la verdad es que no lo veo. A ver si
> alguien
> encuentra el fallo. VFP 6.0.
> Intento que todo esté cerrado y que el INSERT INTO se realice en el


cursor
> CurTodasCuentas; pero se hace en CuenNue.
> Casi todas las instrucciones USE IN las he puesto luego para forzar que
> todo
> este bien cerrado.
>
> *!* Cargamos el cursor con las cuentas nuevas definidas en CuenNue
> USE IN SELECT ('CurTemporal')
> SELECT cuenta ,cuennueiD FROM 'CuenNue' INTO CURSOR curTemporal
> USE IN SELECT ('CuenNue')
>
> ****** Si pregunto por dbf() me devuelve CueNue !!!!
>
> *!* Añadir la cuenta predeterminada
> IF _TALLY <> 0
> USE IN SELECT ('CurTodasCuentas')
> ****** Si pregunto por dbf() me devuelve cadena vacía
>
> USE DBF("curtemporal") IN 0 AGAIN ALIAS curTodasCuentas
> USE IN SELECT ('CurTemporal')
>
> ****** Si pregunto por dbf() me devuelve CueNue !!!!
>
> IF USED("curTodasCuentas")
> SELECT ('CurTodasCuentas')
> INSERT INTO 'CurTodasCuentas' (cuenta, cuennueiD) VALUES
> ('Predeterminada', 0)
>
> ****** Si pregunto por dbf() me devuelve CueNue !!!! Se agrega al cursor


y
> a
> la tabla CuenNue !!!!!
>
> endif
> *etc etc
> ENDIF
>
>
> Este código lo tengo en otro lugar de la aplicación y funciona bien;


pero
> ahora que me he detenido a ver resulta que DBF() está apuntando a un TMP
> por
> tanto no me afecta.
>
> Debe haber algún problema de tratamiento de cursores y sus tablas de
> origen,
> ¿alguien lo ve?
>
>
> Saludos,
>
> Ana
> www.amby.net
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida