Varible global en memoria


([N4] CEESA) #1

Hola:
Acabo de comprobar que cuando creamos una variable global en memoria, esta no existe aunque reiniciemos la instancia de datos (ni la de aplicación). La única forma de que exista esta variable para la aplicación es reiniciando el vServer.
Esto no ocurre con las variables globales de disco, ya que son visibles en cuanto reiniciamos la instancia de datos.
Saludos.
José Luis Cuesta


([N4] rcueto.velneo) #2

Hola, José Luis:

Te agradeceríamos que aclarases a qué te refieres con que no existe, ¿Qué no está disponible cuando intentas usarla en Velneo vDevelop?

Gracias por tu colaboración.

Un saludo.


([N4] CEESA) #3

En vDevelop si está disponible para usarla, pero al ejecutar aparece un mensaje de que la variable no existe. Hasta que no reinicias el servidor es como si no existiera en modo ejecución.


([N4] rcueto.velneo) #4

Hola:

Eso es indicativo de que la instancia de la caja de datos no ha sido reiniciada. Debes tener en cuenta que si una caja de datos tiene algún enganche, no podrá ser reiniciada. Has de fijarte en el mensaje que se te presente al reiniciar la caja de datos.

Un saludo.


([N4] CEESA) #5

Hola Rafa:
La caja de datos si la había reiniciado. Lo acabo de probar nuevamente y me lo hace mal. Siempre que cambio algo de la "parte izquierda" reinicio la caja de datos, y siempre reinicio la de aplicaciones.

Si quieres haz la prueba y crea una variable en memoria. Por ejemplo en un evento de gana foco de cualquier objeto de un formulario grabas un valor en la variable y un mensaje que la visualice. Al visualizarla sale valor 0 (yo he puesto por ejemplo "hola") y en la zona de mensajes del marco principal me sale: Error: Variable inexistente ...

Hasta que no reinicias el vServer no te la reconoce.

Saludos.


([N4] rcueto.velneo) #6

Hola, José Luis:

He vuelto a probar si se crea o no la variable al reiniciar las cajas y te confirmo que sí lo hace. Haz la prueba más sencilla: Crea un control de edición en cualquier formulario para editarla y crea otro de texto estático que la muestre, verás cómo a medida que escribes en el edit en texto estático aparece el texto escrito. Eso es indicativo de que la variable existe y es funcional.

Un saludo.


([N4] CEESA) #7

Hola Rafa:
He probado como tu dices y también me da error. En los dos campos (el de edición y el de texto estático aparece 0) y según voy escribiendo, en el estático me sigue apareciendo 0 y el mensaje de error que ya te comenté.
Ojo que la variable no es de disco (las variables de disco funcionan bien), es de memoria. Es una variable Alfabética.
Saludos.


([N4] rcueto.velneo) #8

Hola:

Confirmarte que lo habíamos probado tanto con variables globales en memoria como en disco, y no hemos logrado reproducir el error que comentas.

Ya que no logramos reproducir el error que comentas, te agradeceríamos que nos indicases, uno a uno, los pasos que sigues (desde la edición hasta la ejecución).

Un saludo.


([N4] CEESA) #9

Hola:
Vuelvo a la carga con este tema. Quería probarlo esta noche desde nuestro propio vServer. También me pasa lo mismo. Te voy comentando paso a paso lo que hago:
- Voy al vDevelop, cargo la caja de datos y creo la variable con el icono de la barra de herramientas. Dejo el nombre que me sugiere y solo cambio en las propiedades la persistencia en memoria.
- Voy a la pestaña de cargadas y cargo la caja de aplicación
- Voy a un formulario principal que tengo asociado al marco Autoexec y le pongo un control de edición y otro de texto estático. Ambos con el contenido de la variable que me acabo de crear.
- Le doy al icono de guardar caja de la barra de herramientas.
- Ahora voy al vAdmin y reinicio la instancia de datos y luego la instancia de la aplicación. Ambas se reinician correctamente.
- Voy al vClient y al entrar a la aplicación ya me aparece el error que podeis ver en la pantalla que os adjunto. Cuando escribo texto en el campo de edición no sale nada en el campo de texto estático.
- Solo funciona cuando reinicio el vServer
Saludos.

[attachment=1822,195]


([N4] rcueto.velneo) #10

Hola, José Luis:

[quote]- Voy al vDevelop, cargo la caja de datos y creo la variable con el
icono de la barra de herramientas. Dejo el nombre que me sugiere y solo
cambio en las propiedades la persistencia en memoria.
- Voy a la pestaña de cargadas y cargo la caja de aplicación
- Voy a un formulario principal que tengo asociado al marco Autoexec y
le pongo un control de edición y otro de texto estático. Ambos con el
contenido de la variable que me acabo de crear.
- Le doy al icono de guardar caja de la barra de herramientas.
[/quote]
Según los pasos indicados en ningún momento has guardado la caja de datos. Deberías guardarla antes de cargar la de aplicación.

Un saludo.


([N4] CEESA) #11

Hola Rafa:
Tienes razon. No se por que motivo pero estaba
convencido de que el icono de guardar caja era lo mismo que "guardar
cajas" y que se guardaban tanto la caja de datos como la de aplicación.
De todas formas no es muy lógico que sin guardar la caja de datos abra
la caja de aplicación y me deje seleccionar una variable que no está
guardada. Creo que da lugar a este tipo de errores si no tenemos los
conceptos muy claros.
Sabiéndolo ya no hay problema. La próxima vez me aseguraré muy mucho de guardar las dos cajas.
Gracias.
Saludos.


([N4] rcueto.velneo) #12

Hola, José Luis:

Ten en cuenta que estás en edición. En ejecución es lógico trabajar con cajas salvadas, pero en edición no.

La situación es la misma que cuando en la caja de aplicación que estoy editando añado un objeto, no tengo que guardar la caja para poder hacer uso de ese nuevo objeto en la edición.

Un saludo.