Cosmos

Preguntas frecuentes / Casos prácticos

  1. Si disponemos de un proyecto en una unidad de red y queremos pasarlo a una unidad local, al instalar Cosmos en local no deja ejecutar ningún módulo. El mensaje que aparece es: "Can not open file".

    Hay que redefinir la ruta del repositorio, ya que éste se está buscando en una unidad que no existe.

  2. Tenemos creada una tabla temporal, pero necesitamos cerrar y abrir distintas bases de datos. En un momento determinado, al cerrar la base de datos sobre la que se ha creado dicha tabla y seleccionar otra base de datos, al intentar consultar la tabla temporal aparece un mensaje diciendo que la tabla temporal no existe.

    Hay que utilizar tantas definiciones con la clase "SqlServer" como bases de datos tengamos.

  3. ¿Cómo se puede saber si un fichero existe o no?

    Utilizando el método "TestFile" de la clase "Module".

  4. ¿Se puede imprimir texto en vertical?

    Sí. Desde la versión 4.4 de Cosmos para los controles de tipo Text y Variable.

  5. Hemos creado una serie de usuarios mediante el Editor de Configuración. ¿Tienen éstos alguna relación con los usuarios que podemos utilizar en la variable de entorno DBUSER?

    No. Sólo en local y versiones LAN si en el entorno del usuario que está activo no está definida la variable de entorno DBUSER.

  6. ¿Se pueden asignar dinámicamente comandos a botones?

    Sí, utilizando el método "SendCommand" en el "OnClick" del botón.

  7. ¿Se pueden borrar los comandos definidos en un proyecto?

    No. Los comandos que aparecen en el proyecto son los definidos en los módulos que actualmente están cargados.

  8. En una "list box" queremos ver el contenido de un fichero. Al ejecutar el módulo no aparece el fichero, pero si hacemos un "test" sobre él sí está.

    Hay que asignar a la propiedad "ListFile" la ruta del fichero que queremos ver en el "On Open" del formulario.

  9. ¿De qué modo se pueden realizar búsquedas como en MultiBase?

    Poniendo la variable de entorno "QUERYLIKEEXTENDED=TRUE" y con el método "SetOption" de las clases "Module", "Form" o "FormTable".

  10. ¿Se puede hacer que en un "Edit Field Multilínea" cambie de línea cuando llegue al final del control?

    Sí, activando la propiedad "Auto Wrap" de la pestaña "Special".

  11. ¿Dónde se crean los ficheros temporales, en memoria o en disco?

    En el directorio especificado en la variable de entorno "DBTEMP".

  12. ¿Cómo llamar a un "Extern Objects"?

    Con el método "Run" de la clase "Module". Por ejemplo: "Module.Run;".

  13. ¿El ODBC sólo funciona en cliente-servidor?

    Sí.

  14. ¿Por qué no se puede generar la documentación?

    Para ello hay que tener definidas en el fichero "cosmos.ini" las entradas correspondientes al documentador.

  15. ¿De qué manera se puede hacer un "input" simulando el funcionamiento de Basic?

    Mediante una función de librería o a través de un "include" llamando a un FORM con un título, pasando una variable por referencia y asociando el texto a la variable.

  16. ¿Cómo poner una línea en un grupo de impresión en Cosmos?

    En una caja con dos páginas.

  17. En campos de texto y "EditFields" ¿cómo pasamos el foco de un control a otro?

    Con el método SetFocus.

  18. ¿Cómo se puede generar un repositorio de una base de datos Interbase vía ODBC?

    Utilizando una conexión ODBC, siempre y cuando exista una compatibilidad de tipos.

  19. Creamos un sinónimo para una tabla desde Cosmos e intentamos utilizar la tabla a través del sinónimo desde MultiBase.

    Para poder utilizar dicho sinónimo el usuario que lo ha creado en Cosmos ha de ser el mismo que el que lo intenta utilizar en MultiBase.

  20. ¿Cómo ejecutar un proyecto Cosmos desde el editor de desarrollo?

    Seleccionando el módulo de inicio y pulsando [F5].

  21. Si hay definidas conexiones a diferentes bases de datos, ¿cómo se puede conectar a ellas por programa?

    Utilizando los métodos "Attachconnection" y "Connect".

  22. ¿Qué hay que hacer para que salga en una ventana el resultado de una SELECT?

    Utilizar el método "SelectWindow".

  23. Para imprimir en una impresora matricial, ¿es preferible utilizar "Streams" o "Pages"?

    En versiones anteriores a la 3.2 es mejor utilizar Streams. Si utilizamos Pages es recomendable emplear fuentes de impresión en lugar de True Type.

  24. ¿Se puede ejecutar un módulo que no sea el principal?

    Sí, empleando la opción "-omd" del comando "Cosrun".

  25. ¿Cómo se deshabilita una página de un "Tab Control"?

    Con la propiedad "DisablePage(<pagina>,TRUE)".

  26. Si cargamos una tabla con 1 millón de registros y a continuación los borramos no se libera el espacio en disco. ¿A qué es debido?

    Los registros no se borran físicamente, sino que se marcan como "borrados".

    Para eliminarlo, podemos hacer:

    1. Un "Drop Table" y a continuación un "Create Table" si la tabla quedó vacía.
    2. Un "Alter Table".
    3. Reparando la tabla.
  27. ¿Cómo imprimir un "Edit Field" multilínea?

    Con otro "Edit Field" multilínea o con los métodos "Wraped".

  28. Tenemos un "include" y un "On Command" redefinido. Si lo incluimos dentro del código de la clase funciona, pero en el "include" no. ¿Qué hay que hacer para que funcione en el "include"?

    Definir la clase como derivada de la clase abstracta del INCLUDE.

  29. En un campo "Edit Field" con una variable char(1), ¿qué se puede hacer si el campo tiene una serie de valores predefinidos?

    Declarar el campo de tipo enumerado.

  30. Queremos que un campo de una estructura lo herede otra estructura, es decir, que el campo "a" (Estructura 1) sea común al campo "b" (Estructura 2).

    Hay que definir una segunda estructura en la que uno de los componentes sea la estructura predefinida en el módulo.