Cosmos

Preguntas frecuentes / Casos prácticos

  1. Tenemos variables a=null, b="jjj". Cuando realizamos las siguientes comparaciones (a <> b o a == b) siempre devuelve falso.

    Los nulos tienen un valor indeterminado, con lo que no son ni iguales ni distintos. Para preguntar por nulo utilizar "IS NULL" o "IS NOT NULL".

  2. ¿Existe alguna manera de definir objetos de forma dinámica?

    Sólo con objetos simples ("smallint", "integer", "date") con el método SetValue. Para recuperar su valor utilizaremos el método GetValue.

  3. ¿Cómo podemos asignar iconos a botones de un FORM desde una INCLUDE?

    Hay que crear un Form Abstracto con un método que permita modificar los iconos de los botones por medio de la función "Control( <id del botón> )", y hacer que el formulario que tiene los botones herede las propiedades de este Form Abstracto.

  4. ¿Cómo podemos saber qué "Radio Button" está seleccionado?

    Con la propiedad "Selected" del control.

  5. ¿Cómo se puede cambiar el número de copias de un listado?

    Con el método NumCopies.

  6. ¿Cómo hacer que un FORM desaparezca automáticamente?

    Definir un "Timer" en el lugar donde se cierre el módulo y ejecutar el método Close de la clase Form.

  7. Realizamos el chequeo de una tabla y a partir de ese momento aparece un mensaje indicando que la tabla puede estar deteriorada. ¿Cómo se puede quitar el mensaje?

    Borrar el fichero "syserr" que se encuentra en el directorio "*.dbs".

  8. ¿Cómo recoger valores de una SELECT sin usar un CURSOR?

    Utilizando el método Select de la clase SqlServer.

  9. ¿Cómo recoger valores de una SELECT WINDOW en un control de tipo TEXT?

    Asociando una variable al "TEXT" para que vaya recogiendo los distintos valores.

  10. ¿Existe algún método que redimensione los controles cuando cambia de tamaño el FORM?

    Simplemente "attachando" (botones de la paleta "Adjust Palette") los controles a su contenedor.

  11. ¿Se puede saber con alguna función el nombre de un menú?

    No.

  12. ¿Se puede activar el "Click" de un "Grid" cuando se pulsa sobre la parte izquierda?

    Con el evento "Click Index".

  13. ¿Se pueden crear controles de forma dinámica?

    No.

  14. ¿Cómo añadir columnas de una tabla definida en la sección "tables" de un "form" al FORM?

    Tomando la columna del repositorio del proyecto y arrastrándola sobre la tabla de la sección "tables" del FORM.

    También es posible hacerlo abriendo la lista de columnas, pulsando con el botón derecho "Add" y chequeando en las propiedades de la variable "Is Column".

  15. Al ejecutar el comando "COPY" de MS-DOS aparece un mensaje de error indicando que no encuentra el fichero.

    Emplear el método "COPY" de la clase module.

  16. Cuando grabamos una fila aparece el mensaje "Value too big for an INTEGER". No hay campos de tipo INTEGER, pero sí de tipo fecha y éstas pueden venir no inicializadas.

    Poner los campos de tipo fecha con un valor correcto, ya que las fechas se almacenan como enteros.

  17. ¿Se puede realizar la gestión de dos tablas con los mismos botones?

    Sí, para ello hay que redefinir el comando que ejecuta el botón.

  18. ¿Se puede modificar la clave primaria de una tabla en un mantenimiento?

    No. Esto es debido a que la clave primaria se utiliza para generar la lista en curso.

  19. ¿De qué forma se puede cargar un menú en ejecución?

    Con el método "SetMenu".

  20. ¿Cómo cambiar el color de un control en un "grid" sin que lo cambie a todas las filas?

    Activando la propiedad "STORE DESIGN" del control que está en el "grid".

  21. En una clase abstracta, ¿cómo declarar el evento RowChanged para cualquier tabla?

    De la siguiente manera:

    On RowChanged table (p_table as char)

  22. ¿Existe algún método que permita limpiar las variables en un listado?

    El método "CLEAR" de la clase "PAGE".

  23. ¿Puede un programa de MultiBase compartir una tabla temporal creada en Cosmos?

    No, ya que las tablas temporales se crean por número de proceso, y aunque ejecutásemos al mismo tiempo MultiBase y Cosmos, entre ellos habría procesos diferentes.

  24. ¿Se puede modificar el tipo de letra por programa?

    Utilizando el método SetProperty de la clase Control.

  25. Después de haber realizado un wizard de un proyecto aparece un mensaje indicando que la base de datos no está abierta. ¿Cómo se puede solucionar?

    Hay que generar una librería con la conexión y desconexión a la base de datos e incluirla en el módulo de inicio de la aplicación.

  26. Al cambiar el atributo "Bold" éste se aplica a todo el grupo, ¿hay alguna manera de evitarlo?

    Activando el "store status" del control variable que está dentro del grupo.

  27. ¿Se hereda el atributo "comments" en campos enlazados ("linkados")?

    No, sólo se heredan los atributos SQL.

  28. ¿Cómo se puede cambiar el directorio por defecto para grabar un fichero ".sql"?

    Cambiando el valor de la variable DBTEMP.

  29. Al intentar crear un cabeceras-líneas no deja crear la "foreign key" en el repositorio.

    Para que esto no suceda hay que poner correctamente el orden de los campos de la "foreign key".

  30. ¿Cómo se puede determinar el ancho de un dato en una "List Box"?

    Utilizando el método "SetColumnChars".