• Sábado 21 de Diciembre de 2024, 10:12

Autor Tema:  Conceptos de cursores - Error 1152  (Leído 1617 veces)

guadi

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Conceptos de cursores - Error 1152
« en: Miércoles 22 de Julio de 2009, 13:38 »
0
En mi aplicación tengo tres combos anidados que se usan en casi todas las interfaces.
Lo que hago para cargarlos es crear un cursor (para cada uno)y pasárselos como rowsource a cada combo.

Tengo las sgtes. dudas que son de concepto más que nada:

Yo el cursor lo armo de la siguiente manera:
SELECT dsc_rubro, cod_rubro, cod_familia;
FROM rubros;
INTO CURSOR crubros

Está bien así?
Tengo que abrir la tabla rubros antes de armar el cursor y cerrarla después?
Este cursor lo uso en todas las interfaces en que está el combo rubros, está bien? O para cada pantalla tengo que tener un cursor distinto?

Varias veces me pasa que tira el error 1152 (no se puede abrir la tabla <nombre del cursor>)Porqué me tira ese error??

Gracias!!!

xodrf

  • Miembro activo
  • **
  • Mensajes: 32
    • Ver Perfil
Re: Conceptos de cursores - Error 1152
« Respuesta #1 en: Miércoles 22 de Julio de 2009, 16:14 »
0
Bueno no se si utilizas en red, pero lo mas problables es que si, hasta donde yo se al hacer un SELECT si las tablas involucradas no estan abiertas estas se abren del modo predeterminado ver SET EXCLUSIVE, yo te recomiendo que siempre lo abras en modo de solo lecturas antes del SELECT si no realizaras actualizaciones sobre el y lo cierres luego si no lo utilizaras mas,  siempre debes conservar el principio de menos privilegios y revisar bien que tu codigo no lo este abriendo en otras partes o que no lo hayas cerrado donde debias.
Yo en tu lugar lo haria en una matriz publica si la lista de registros no fueran excesivas, o podrias crear el cursor una vez al iniciar tu programa y no estar haciendolo en cada formulario bueno es una idea nomas, siempre debes pensar en no abusar de los recursos de tu sistema para que este te de mejores prestaciones y velocidad.
Te recomiendo que siempre depures detenidamente tu codigo.
No se si te he ayudado, pero en fin!!