Funcion JSON_MODIFY() en SQL Server

Hola compañeros,

La función JSON_MODIFY() en SQL Server se utiliza para actualizar valores específicos dentro de un valor JSON. Esta función toma tres argumentos: el valor JSON al que se desea hacer la modificación, el camino al fragmento que se desea actualizar y el nuevo valor.

Por ejemplo, si tenemos una tabla clientes con una columna datos de tipo JSON que contiene información sobre los clientes, como su nombre, dirección y teléfono, y deseamos actualizar la dirección de un cliente específico, podemos utilizar JSON_MODIFY() de la siguiente manera:

En este caso se esta utilizando JSON_MODIFY para actualizar la dirección del cliente con id 1.

Además de actualizar valores existentes, también podemos utilizar JSON_MODIFY() para agregar nuevas propiedades a un valor JSON. Por ejemplo, si queremos agregar un correo electrónico a la información de un cliente específico, podemos utilizar la siguiente consulta:

Es importante tener en cuenta que, al utilizar JSON_MODIFY() se sobreescriben los valores existentes, si deseas agregar una propiedad y no sobreescribir alguna existente, es recomendable hacer uso de la función JSON_MERGEPATCH()

En resumen, la función JSON_MODIFY() es una herramienta útil para actualizar valores específicos dentro de un valor JSON en SQL Server. Con su uso se pueden realizar actualizaciones precisas y específicas en los datos almacenados en formato JSON en SQL Server.

Funcion JSON_QUERY() en SQL Server

Hola a tod@s,

La función JSON_QUERY() en SQL Server se utiliza para extraer un fragmento específico de un valor JSON en forma de texto. A diferencia de JSON_VALUE(), que solo devuelve el valor de una propiedad específica, JSON_QUERY() puede extraer un sub-árbol completo de un valor JSON.

Para utilizar JSON_QUERY(), se le proporciona el valor JSON como primer argumento y el camino al fragmento deseado como segundo argumento. El camino al fragmento se especifica utilizando el formato de notación de punto (.) para acceder a las propiedades del objeto JSON.

Por ejemplo, si tenemos una tabla clientes con una columna datos de tipo JSON que contiene información sobre los clientes, como su nombre, dirección y teléfono, podríamos utilizar JSON_QUERY() para extraer solo la información de contacto de cada cliente:

n este caso se esta utilizando JSON_QUERY para extraer solo la dirección y el teléfono de cada cliente y seleccionarlo en la tabla final.

Además de JSON_QUERY(), también podemos utilizar la función JSON_EXISTS() para verificar si un fragmento específico existe en un valor JSON. Esta función toma dos argumentos: el valor JSON y el camino al fragmento que se desea verificar. Por ejemplo, si queremos verificar si un cliente tiene un número de teléfono específico, podemos utilizar la siguiente consulta:

En resumen, la función JSON_QUERY() es una herramienta útil para extraer fragmentos específicos de un valor JSON en SQL Server, mientras que JSON_EXISTS() se utiliza para verificar si un fragmento específico existe en un valor JSON. Con el uso de ambas funciones, se pueden crear consultas más específicas y precisas sobre los datos almacenados en formato JSON en SQL Server.

Espero que os valga, saludos..

Campo JSON en SQL Server

Hola compañeros !!

SQL Server 2016 y versiones posteriores incluyen un nuevo tipo de datos JSON para almacenar y manejar datos en formato JSON. Para crear una columna de tipo JSON, se utiliza el tipo de datos nvarchar(max) con la especificación FOR JSON en la cláusula AS. Por ejemplo, para crear una tabla con una columna de tipo JSON se utilizaría el siguiente comando SQL:

Una vez creada la tabla, se pueden insertar datos en formato JSON utilizando la cláusula VALUES y encerrando el valor JSON en comillas dobles. Por ejemplo:

Para acceder a los valores contenidos en un campo JSON se utiliza la función JSON_VALUE(). Esta función toma dos argumentos: el primer argumento es el valor JSON y el segundo argumento es el camino a la propiedad específica que se desea obtener. Por ejemplo, para obtener el valor de la propiedad “nombre” en el ejemplo anterior se utilizaría la siguiente consulta SQL:

Además de JSON_VALUE(), existen otras funciones para trabajar con datos JSON en SQL Server, como JSON_QUERY(), JSON_MODIFY() y ISJSON(). Es importante tener en cuenta que el uso de estas funciones requiere un conocimiento previo del formato y estructura de los datos JSON que se están manejando.

Marca de Agua en Imagen

¡Hola a todos!

Hoy quiero compartir con vosotros cómo utilizar Visual Basic .NET para modificar imágenes y agregar una marca de agua. La marca de agua es una técnica común utilizada para proteger la propiedad intelectual de una imagen al agregar un logotipo o texto sobre la misma.

Para comenzar, necesitaremos una imagen y una imagen de la marca de agua que deseamos agregar. En este ejemplo, utilizaremos la clase Image de System.Drawing para cargar ambas imágenes.

Una vez que hayamos cargado las imágenes, utilizaremos la clase Graphics para dibujar la imagen de la marca de agua sobre la imagen original. Podemos especificar la posición de la marca de agua utilizando los métodos DrawImage y DrawString.

Por último, guardaremos la imagen modificada utilizando el método Save. A continuación, se presenta un ejemplo de código que muestra cómo agregar una marca de agua en la esquina inferior derecha de una imagen:

Espero que este ejemplo les ayude a entender cómo utilizar Visual Basic .NET para agregar una marca de agua a una imagen. Recuerda jugar con el código y experimentar con diferentes posiciones y tamaños de marca de agua.

Comprimir y Descomprimir Ficheros Zip

Hola compañeros!!, Hace mucho tiempo que no escribia nada, pero no he tenido mucho tiempo, voy a intentar darle un empujon y escribir algunas entradas que os puedan ayudar.

Hoy vamos a explicar como podemos comprimir y descomprimir ficheros zip desde .NET

Para ello, vamos a necesitar un Nuget llamado Ionic.Zip, si quieres ver como se instalan los Nuget en.NET puedes verlo en esta entrada.

Empezamos explicando como Comprimir ficheros en un Zip.

Con este ejemplo que os pongo a continuación lo que hace es recorrerse todos los ficheros que hay en la ruta C:\Comprimir y generar un fichero zip en la carpeta C:\Destino

El siguiente ejemplo tambien muy facil lo que hace es lo contrario descomprimir el contenido de un fichero .zip en una carpeta.

Si quereis profundizar mas y ver las opciones que podemos establecer, por ejemplo poner contraseña os animo que veais la documentación oficial en el siguiente enlace.

Muchas gracias y hasta la siguiente entrada 😉

 

 

Diferencias entre @@identity y Scope_identity

Hola a todos,

SQL Server ofrece al menos 3 formas de obtener el último ID insertado. Aunque puedan parecer iguales, no son equivalentes y conocer sus diferencias es muy importante:

@@Identity: devuelve el último ID en la misma conexión.
Scope_identity(): la que recomendamos, devuelve el último ID creado en la misma conexión y el mismo contexto. En este caso el contexto se refiere a la consulta o procedimiento almacenado actual.
ident_current(nombre): devuelve el último ID de la tabla que le indiquemos (el que haya en ese momento)

En la mayor parte de los casos @@identity y scope_identity() se comportan igual, pero no siempre es así.

Por ejemplo, si tenemos un disparador (trigger) en nuestra tabla y lanzamos una consulta de inserción que genera un nuevo registro y por lo tanto un nuevo ID, si el trigger a su vez genera otro registro en otra tabla (y probablemente otro ID en ésta), en esta situación @@identity nos devolverá el ID del registro que ha insertado el disparador, no el ID de la tabla que hemos actualizado (lo cual no es lo que queremos casi nunca), ya que te devuelve el último que se haya generado en esa conexión, tal y comentábamos en la lista anterior. Sin embargo, en este ejemplo, scope_identity() nos devuelve el identificador que esperábamos (el de la inserción en nuestra tabla) ya que siempre devuelve el del contexto actual, que en este caso es nuestra consulta de inserción.

Yo os recomiendo el uso de scope_identity().

Saludos

Control Repeater en ASP.NET

Hola a tod@s,

Hoy os traigo un fragmente de codigo para que empeceis a trastear con el control Repeater, un control que esta disponible en ASP, lo que hace este control es repetir el contenido que tiene dentro de la etiqueta “ItemTemplate” , en funcion de los datos que tenga en su origen de datos. En este ejemplo, pintaremos varios controles en su interior, y os mostrare de una forma sencilla, los pasos que hay que realizar para poder usarlo.

Lo primero de todo, hay que añadir en nuestra pagina .aspx el control, para ello hay que escribir la siguiente linea donde queramos que se muestre:

El siguiente paso, seria incluir el contenido que queremos que se repita por cada item que va a contener el origen de datos, para ello, tendremos que meterlo dentro de la etiqueta “<ItemTemplate>”, en este caso, vamos a crear dentro una etiqueta label y un desplegable:

Para informar al control repeater del origen de dato, tenemos que alimentar su propiedad DataSource, para ello en el Load o en el evento que necesitamos, cargaramos en un datatable por ejemplo, los datos y se lo asignamos de esta forma:

Si necesitaramos rellenar el desplegable de alguna forma dinamica, podriamos utilizar el siguiente evento para rellenar los valores que correspondan en cada elemento. En este evento se puede manejar el item en cuestion, esto es un ejemplo, pero os invito a trastear con ello.

Para recorrernos el control, por ejemplo para guardar, o sacar la informacion que haya introducido el usuario, usariamos el siguiente fragmento de codigo:

Bueno espero que te haya servido para tener una idea de lo que permite el control y te ayude en el inicio, intentare realizar algun ejemplo mas proximamente.

Saludos

Generar codigo QR

Hola,

Os traigo otro fragmento de codigo que puede ser muy interesante, en este caso para poder crear Codigos QR, y poder incluirlos en cualquier aplicacion que sea necesaria disponer de ellos.

Los códigos QR (Quick Response Code) son códigos bidimensionales que pueden almacenar pequeñas cantidades de información, por ejemplo, una URL, y ser leídos fácilmente con lectores especializados o con casi cualquier dispositivo que cuente con una cámara de fotos.

Para nuestro ejemplo usaremos una libreria que puedes encontrar en los paquetes NuGet, sino sabes como instalarlo visita este post. La libreria en cuestion seria una que se llama QrCode.net
Leer más

Exportar datos de un GridView a Excel

Hola a tod@s,

Aqui os traigo otro post muy cortito el cual nos muestra como podemos exportar los datos de un GridView de ASP.NET a Excel. Para hacerlo, basta con colocar un GridView vacio en el codigo de nuestra pagina de la siguiente forma:

Necesitaremos tambien un boton para indicar que queremos exportar la informacion, lo incluiremos de la misma forma.

Y por ultimo, incluiremos el siguiente codigo, previamente, para este ejemplo he cargado un datatable muy sencillo en el Load de la pagina.

NOTA: si por alguna razon, os saltase el error “RegisterForEventValidation can only be called during Render“, se puede solucionar colocando la siguiente directiva EnableEventValidation en la pagina:

Espero que te valga para algo este fragmento de codigo muy sencillo.

Saludos

Deserializar una cadena JSON en una clase

Hola a tod@s,

En el dia de hoy, hoy voy a traer un pequeño codigo para deserializar una cadena con formato JSON en una clase, como vereis es muy sencillo.

Lo primero de todo, tenemos instalar un paquete llamado Newtonsoft, sino sabes como hacerlo puedes verlo aqui, tras instalar el paquete NuGet hay que importar los espacios de nombre:

Necesitaremos disponer de una clase con la estructura correcta, hay que tener en cuenta que los nombres de las variables deben de coincidir con las de la cadena JSON, ya que sino no hara nada.

Por otro lado, generamos una clase en la que pondremos el nombre que esta dentro del JSON, que nos indica que es un conjunto de Personas, lo mismo que antes debe de tener el nombre exacto para que parchee las propiedades.

La cadena de JSON que nos llega es la siguiente, estaria almacenada en una variable llamada por ejemplo jsonRetorno.

Como veis, la estructura es la misma que la clase, pero podria tener algun campo que en la clase no este, y lo que hara es omitirlo. La linea de codigo necesaria para poder deserializar es la siguiente:

Dentro del objeto oPersona, tendremos dos clases que coinciden con las del JSON.

Espero que os valga, tambien podeis ver como serializar una clase en una cadena Json, en este post.

Saludos,