FoxPro/Visual FoxPro - problemas con cursor

 
Vista:

problemas con cursor

Publicado por bekyna (294 intervenciones) el 03/11/2005 19:09:42
Hola buen día, mi problemita es el siguiente:

Utilizo un cursor( lo cree en el evento INIT del formulario) para filtrar algunos datos de mi tabla y lo utilizo en un procedimiento que yo creo también y es cuando lo llamo cuando me maraca el error “el tmpcursor” no existe, pero lo curioso es que si lo cancelo y lo vuelvo a ejecutar entonces si funciona, no he hallado cual puede ser el problema ojala puedan darme alguna sugerencia

Nota: La primera vez que lo ejecuto me envía una ventana “tablas de la base de datos”, con el nombre de las tabas para que yo las seccione y acepte , es cuando cierro esta ventana que me aparece el mensaje de que mi cursor: tmpcursor, no existe, pero no entiendo que fue lo que se me paso, es después de varios intentos cuando ya no marca error.
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:problemas con cursor

Publicado por Ángel I. (86 intervenciones) el 05/11/2005 23:32:52
create cursor tmpcursor(clave n(6), nombre c(15))

select tmpcursor

Creo que el problema es que no tienes seleccionada ninguna area de trabajo o tabla...por eso te sale el cuadro de diálogo de seleccionar tabla, prueba a ver...

Suerte.
Angel.
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:problemas con cursor

Publicado por bekyna (294 intervenciones) el 07/11/2005 16:37:09
eso es exaxtamente lo que hago ya intente con asignarle una area de trabajo a mi cursor y luego trabajar con ella, pero tampoco funciono.

gracias por tus comentarios, saludos cordiales.
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:problemas con cursor

Publicado por giovanni (64 intervenciones) el 22/11/2005 23:58:25
Cuando se crea una tabla con el comando cursor ella queda en la menor area disponible; mira en que area te crea la tabla y activala en el evento init del form con select numero de area
Espero te sirva,
o sino avisame
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

RE:problemas con cursor

Publicado por giovanni (64 intervenciones) el 23/11/2005 00:06:35
Oye otra vez yo,
El evento init se desencadena cuando se crea el objeto por primera vez, una vez te sale el error y lo cancelas el objeto no se libera y por lo tando queda en memoria con el cursor creado. cuando vuelves a correlo el cursor ya existe y no te sale el error.
Una sugerencia es que en el evento init llames a un procedimiento, alli creas el cursor.
Espero sirva
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:problemas con cursor

Publicado por bekyna (294 intervenciones) el 23/11/2005 15:48:35
Gracias por tus comentarios, me has dado algunas ideas, pero no se como puedo conocer el área donde se ha creado el cursor ¿y que pasa si tengo mas de 1?
Nota: por el momento tengo ocupada el área 1, ¿entonces utilizo el área cero es asi?

gracias
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:problemas con cursor

Publicado por bekyna (294 intervenciones) el 23/11/2005 15:56:13
Gracias por tus comentarios, me has dado algunas ideas, pero no se como puedo conocer el área donde se ha creado el cursor ¿y que pasa si tengo mas de 1?
Nota: por el momento tengo ocupada el área 1, ¿entonces utilizo el área cero es asi?

gracias
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:problemas con cursor

Publicado por giovanni (64 intervenciones) el 24/11/2005 20:47:39
Hola, tratare de explicarte lo mas sencillo posible

Usualmente tu estas en el area 1 o A que es lo mismo, abres una dbf ej:
use idbf la tabla queda activa en el area 1. Si abres otra dbf sin cambiar de area con el comando select lo arias asi: use miotradbf in 2, y asi sucesivamente.

mira el siguiente codigo y observa donde se crea la tabla con el comando create cursor

select 1
use tabla1.dbf
use tabla2.dbf in 3
use tabla3.dbf in 4
use tabla4.dbf in 6

*******Hasta aqui el area donde estoy es la 1
*******y las areas utilizadas son 1, 3, 4, 6
****** y si yo hago esto
CREATE CURSOR mitablavirtual ;
(campouno c(5), campodos C(10))
******VFP creara y abrira esta tabla en el area menor disponible osea en la 2
******y si ahora hago esto
select 8
CREATE CURSOR mitablavirtualdos ;
(campouno c(5), campodos C(10))
*******VFP creara y abrira la tabla en el area menor disponible osea en la 5
espero que despejes las dudas que tangas al respecto, si algo me puedes escribir al email, o.k.
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

RE:problemas con cursor

Publicado por Juan (537 intervenciones) el 23/11/2005 20:41:40
Hola Bekina..no te va a funcionar si haces un filtro en el Init.
hace lo que sigue para que te aparezca el indice en la tabla.

Primero borra el indice que hiciste en el Init del Form.Ok.
Ahora pinchas la opción Ver del menú Superior eliges Diseñador
de tablas. le haces click y selecciona Indices ok.
ahora donde dice nombre digitas el nombre campo a indexar
y en expresión repites lo mismo.
ahora Aceptas luego sales hacia el form y haces click con el botón
derecho del mouse.

va aparecer Entorno de datos(que es el date Environment)
has un click a la tabla que indexaste.
te aparecer lo que sigue:
nombre de la base
campos:
camp1
camp2 etc
y aquí al final una pestaña con el campo indice que hiciste,se aparece un librito
** Indices
nombre del campo indice
ejemplo si pusiste nombre como indice es te va a aparecer ahí.

SUERTE BEKINA..
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:problemas con cursor

Publicado por gmo (4 intervenciones) el 10/12/2005 20:58:11
tienes que crearlo en el procedimiento load

y por ejemplo si trabajs con tablas y cursores hace esto yo lo hago para no tener probklemas





por ejmplo
****esta es tu tabla
use tabla in 0 order tag codigo alias tabla
select tabla

seek(codigo)
if found()
go top
do while !eof()
xcodigo=codigo
select tu cursor
append blank
replace codigo with xcodigo
select tabla
skip
enddo
endif
use in select ('tabla') esto cierra la tabla y tu cursor
thisform.refresh
espero te sirva saludos bye
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