Pregunta
· 20 oct, 2020
Evitar $c(0) en globals

Buenas tardes,

Hace ya tiempo que tengo esta duda y no sé si alguno sabrá la respuesta. Cuando realizo un insert por SQL desde una aplicación externa en los campos de tipo %String si están vacíos me graba el caracter $c(0) en el global.

Revisando la documentación he visto que existe una propiedad para las clases que extienden de %XML.Adapter que si sobreescribes el parametro XMLIGNORENULL = 1 puedes hacer que guarde cadenas vacías en lugar de nulos.

0 4
0 215

He desarrollado una aplicación para importar de forma dinámica 12 conjuntos de datos junto con 43 tablas usando el comando LOAD DATA, que carga los datos de una fuente a una tabla SQL de IRIS.

Lista de los conjuntos de datos

0 0
0 322

Si estáis pensando en empezar con SQL en InterSystems IRIS o queréis hacer vuestras consultas más eficientes, podéis completar uno de estos breves ejercicios de formación online! (en inglés)

SQL Exercise

Ambos ejercicios ponen a vuestra disposición una instancia de IRIS en la nube (o learning lab) por lo que no necesitaréis realizar ninguna instalación previa en vuestros equipos.

0 0
0 96
Artículo
· 26 mar, 2020 Lectura de 14 min
Conoce tus índices

Este es el primero de dos artículos sobre los índices SQL.

Parte 1 - Conoce tus índices

¿Qué es un índice?

Recuerda la última vez que fuiste a una biblioteca. Normalmente, los libros están ordenados por temática (y luego autor y título) y cada repisa tiene un cartel en el extremo con un código que describe la temática de los libros. Si necesitaras libros de un cierto tema, en lugar de caminar por cada pasillo y leer la descripción en la parte interior de cada libro, podrías dirigirte directamente al estante cuyo cartel describa la temática que buscas y elegir tus libros de allí. Sin esos carteles, el proceso de encontrar los libros que quieres, habría sido muy lento.

Un índice SQL tiene la misma función general: mejorar el rendimiento, al ofrecer una referencia rápida del valor de los campos para cada fila de una tabla.

Configurar índices es uno de los pasos más importantes a la hora de preparar tus clases para un rendimiento óptimo de SQL.

0 1
1 286
Artículo
· 29 jul, 2021 Lectura de 2 min
Condiciones WHERE estáticas

En SQL, la condición más frecuente WHERE se relaciona principalmente con el contenido de las filas en las que trabajas.
Por lo tanto, debe calcularse y verificarse para cada fila a la que accedas.
Distinto es el caso (y por eso la llamé ESTÁTICA) de una condición WHERE independiente de las filas a las que accedes.

0 0
0 144

En el vasto y variado mercado de las bases de datos SQL, InterSystems IRIS destaca como una plataforma que va mucho más allá de SQL, ofreciendo una experiencia multimodelo perfecta, y siendo compatible con un amplio conjunto de paradigmas de desarrollo. Especialmente el avanzado motor objeto-relacional ha ayudado a organizaciones a utilizar el enfoque de desarrollo más adecuado para cada una de sus cargas de trabajo intensivas en datos; por ejemplo, ingerir datos a través de Objetos y consultarlos simultáneamente mediante SQL. Las Clases Persistentes corresponden a tablas SQL, sus propiedades a columnas de la tabla y se accede fácilmente a la lógica de negocio utilizando Funciones Definidas por el Usuario o Procedimientos Almacenados. En este artículo, nos centraremos un poco en la magia que se encuentra justo debajo de la superficie y discutiremos cómo puede afectar vuestras prácticas de desarrollo e implementación. Esta es un área del producto que tenemos planificado evolucionar y mejorar, así que no dudéis en compartir vuestras opiniones y experiencias en los comentarios al artículo.

0 0
0 81
InterSystems Official
· 1 abr, 2020
Ya está disponible Health Connect 2020.1

La versión 2020.1 de HealthShare Health Connect ya ha sido lanzada.

Los kits para la instalación y las imágenes del contenedor están disponibles en la página de distribución de software del Centro de Soporte Internacional (WRC).

El número de compilación de estas versiones es 2020.1.0.215.0.

0 0
0 90

¡Hola desarrolladores!

Os traemos un nuevo vídeo, grabado por Raj Singh, Product Manager de InterSystems.

Cómo crear en 10 minutos una app usando Python Flask con InterSystems IRIS

https://www.youtube.com/embed/271CEPw_weY
[Este es un enlace integrado, pero no puede ver el contenido integrado directamente en el sitio porque rechazó las cookies que se necesitan para acceder a él. Para ver el contenido integrado, debe aceptar todas las cookies desde la Configuración de cookies]

0 0
0 132

En este artículo, explicaré el uso de las tablas %SQL_Diag.Result y %SQL_Diag.Message junto con la nueva funcionalidad LOAD DATA.

Se recomienda revisar primero la documentación LOAD DATA.

Después del éxito de una operación, LOAD DATA inserta un registro en la tabla %SQL_Diag.Result y los detalles se insertan en la tabla %SQL_Diag.Message

A continuación se muestra el comando básico cuando la tabla ya está creada y el archivo de origen no contiene una fila de encabezado.

LOAD DATA FROM FILE 'C://TEMP/mydata.txt' 
INTO MyTable

El nombre del archivo debe incluir un sufijo .txt o .csv (valores separados por comas) y tanto el origen como el destino tienen la misma secuencia de columnas de datos.

0 0
0 115

¡Hola Comunidad!

Os traemos un nuevo vídeo, disponible en el Canal de YouTube de la Comunidad de Desarrolladores en inglés:

¿Qué es IntegratedML?

https://www.youtube.com/embed/N9QnVx_GLvk
[Este es un enlace integrado, pero no puede ver el contenido integrado directamente en el sitio porque rechazó las cookies que se necesitan para acceder a él. Para ver el contenido integrado, debe aceptar todas las cookies desde la Configuración de cookies]

0 0
0 88
Artículo
· 11 abr, 2023 Lectura de 3 min
Creando una conexión ODBC - Paso a paso

Introducción

Este artículo tiene la intención de ser un sencillo tutorial de cómo crear conexiones ODBC y trabajar con ellas, ya que me pareció que empezar con ellas es un poco confuso. Yo tuve la ayuda de unas personas increíbles, y creo que todos merecemos ese apoyo.

Voy dividir cada pequeña parte en sesiones, así que puedes ir directamente a la que necesites, aunque recomiendo leerlo todo.

0 0
0 251

¡Hola desarrolladores!

A veces necesitamos insertar o referir los datos de clases directamente en globals.

Y quizá muchos de vosotros esperáis que la estructura de datos de una global con registros sea:

^Sample.Person(Id)=$listbuild("",col1,col2,...,coln).

Este artículo es un aviso de que esto no siempre es verdad, así que no se debe dar por supuesto!

0 0
0 146
Artículo
· 29 jul, 2019 Lectura de 4 min
Búsquedas en campos de texto libre de forma rápida

¡Hola a tod@s!

Hoy os traigo un artículo de Kyle Baxter sobre búsquedas de texto libre que vale la pena guardar como referencia :)

¿Os gustaría buscar de forma eficiente campos de texto libres almacenados en vuestra aplicación? ¿Lo habéis intentado alguna vez pero no habéis encontrado una manera que os ofrezca un buen rendimiento? Hay un truco especial que resuelve el problema :)

0 1
0 261

¿Alguien sabe si hay una manera fácil de saber si la ejecución del comando $ System.SQL.PurgeForTable ha ido bien / mal?

La documentación describe que se devuelve un string, pero de hecho hay un bonito Quit "" en el código.

¿Quizás dentro de PurgeForTable ^% apiSQL hay alguna variable de proceso establecida cuando va bien / mal?

¡Muchas gracias!

0 3
0 131

Preguntas frecuentes de InterSystems

La cache de las consultas SQL puede ser purgada mediante programación usando el método Purge* de la clase %SYSTEM.SQL.

*Para ver el detalle de cada uno de los métodos, por favor consulta los siguientes enlaces:

%SYSTEM.SQL class【IRIS】

0 0
0 47
Artículo
· 15 mayo, 2020 Lectura de 9 min
Gestión de índices

¡Hola desarrollador!

Si has leído la parte 1 de este artículo, ya tienes una buena idea del tipo de índices que necesitas para tus clases y cómo definirlos. Lo siguiente es saber cómo gestionarlos.

Plan de consultas

(RECUERDA: Al igual que cualquier modificación en una clase, añadir índices en un sistema en producción conlleva riesgos: si los usuarios están actualizando o accediendo a datos mientras se rellena un índice, podrían obtener resultados vacíos o incorrectos a sus consultas, o incluso dañar los índices que se están formando. Ten en cuenta que hay pasos adicionales para definir y usar índices en un sistema en producción. Estos pasos se analizarán en esta sección, y se detallan en nuestra documentación).

0 1
0 187

¡Hola Comunidad!

Hemos grabado el webinar que hicimos la semana pasada y lo hemos subido al canal de YouTube de la Comunidad de Desarrolladores en español. Si os perdisteis el webinar o lo queréis volver a ver con más detalle, ya está disponible la grabación!

Eduardo Anglada ha trabajado diez años en la Agencia Espacial Europea y nos descubrió muchas cosas interesantes sobre el espacio profundo. Así que... si queréis descubrir de forma práctica cómo crear modelos de Machine Learning, ¡no os perdáis el vídeo!

IntegratedML - Cómo crear modelos de Machine Learning en minutos

https://www.youtube.com/embed/EYbim8S0GLM
[Este es un enlace integrado, pero no puede ver el contenido integrado directamente en el sitio porque rechazó las cookies que se necesitan para acceder a él. Para ver el contenido integrado, debe aceptar todas las cookies desde la Configuración de cookies]

0 0
0 51

Digamos que tengo una clase persistente en IRIS con una propiedad opcional EmailOptIn:

Class Person Extends %Persistent
{
Property Name As %String;
Property EmailOptIn As %Boolean;
}

Más tarde me doy cuenta de que estoy haciendo muchas comprobaciones nulas en esta propiedad donde no debería ser necesario. La solución es hacer de esto una propiedad requerida:

0 0
0 105

¡Hola desarrolladores!

Hoy os traemos un vídeo sobre Machine Learning, para entender sus conceptos básicos y cómo aporta valor en aplicaciones de todo tipo de industrias. El vídeo está disponible en el canal de YouTube de la Comunidad de Desarrolladores en inglés.

¿Qué es Machine Learning?

https://www.youtube.com/embed/LC07-3S3xyo
[Este es un enlace integrado, pero no puede ver el contenido integrado directamente en el sitio porque rechazó las cookies que se necesitan para acceder a él. Para ver el contenido integrado, debe aceptar todas las cookies desde la Configuración de cookies]

0 0
0 142
Artículo
· 7 sep, 2021 Lectura de 3 min
ObjectScript sobre ODBC
Este es un ejemplo de código que funciona en IRIS 2020.1 y en Caché 2018.1.3 
No se mantendrá sincronizado con las nuevas versiones.  
Y NO cuenta con el servicio de soporte de InterSystems.
De vez en cuando, puedes encontrarte una situación en la que, por diferentes razones, ODBC es la única opción para acceder a un sistema remoto. Lo cual es suficiente mientras necesites examinar o cambiar tablas. Pero no puedes ejecutar directamente algunos comandos o cambiar algunos globals.
0 0
0 117

En este artículo demostraré lo siguiente:

  • Cómo actualizar ReferencesRange (OBX: 7) contra ObservationIdentifier (OBX: 3.1) [TestCode] de la base de datos mediante la función de utilidad personalizada
  • Cómo actualizar Abnormal Flag (OBX: 8) contra ObservationIdentifier (OBX: 3.1) [TestCode] y ObservationValue (OBX: 5) [Resultado] desde la función de utilidad de base de datos
  • Mensaje de ruta basado en un Abnormal Flag (OBX: 8)

0 0
0 82

¡Hola Comunidad!

En este artículo voy a explicar cómo acceder a la información y a las tablas del dashboard (cuadro de mando) del sistema del Portal de Administración mediante el uso de Python Embebido.

0 1
0 160
Artículo
· 30 mar, 2023 Lectura de 1 min
Parámetro nombrado en SQL con Python

Quick Tips: Total Productive Maintenance

Los parámetros nombrados se pueden conseguir con SQLAlchemy :

from sqlalchemy import create_engine, text,types,engine

_engine = create_engine('iris+emb:///')

with _engine.connect() as conn:
    rs = conn.execute(text("select :some_private_name"), {"some_private_name": 1})
    print(rs.all())

o con api nativa

from sqlalchemy import create_engine, text,types,engine

# set URL for SQLAlchemy
url = engine.url.URL.create('iris', username='SuperUser', password='SYS', host='localhost', port=33782, database='FHIRSERVER')

_engine = create_engine(url)

with _engine.connect() as conn:
    rs = conn.execute(text("select :some_private_name"), {"some_private_name": 1})
    print(rs.all())

0 0
0 78

Hola comunidad,

Cuando utilizamos un Business Servicio de tipo SQL, puede suceder que necesitemos replicar ciertas filas de la tabla original.

Tomemos como ejemplo el Business Service "from customer SQL" usando la clase genérica EnsLib.SQL.Service.GenericService

0 0
0 53