AnswerBun.com

asignar valor a variable, con un campo string y los datos de la consulta que contiene el string

Stack Overflow en español Asked by Pedro Carvajal on January 1, 2022

Estoy intentando hacer formatos de HTML dinámicos… el formato ya esta construido, solo se tiene que cambiar la consulta que tiene el formato por el dato de la tabla Compradores.

DECLARE @HTMLFormato VARCHAR(MAX)
SET @HTMLFormato =  (   
                    SELECT  Formato
                    from    Formatos
                            inner join Compradores on 1 = 1 
                    where   FormatoId = 2 and CompradorId = 14
                    )

return @HTMLFormato

El campo Formato contiene: '<p>ingrese su texto aquí...<span>'+ CAST( (TerNombre) AS VARCHAR)+'</span>Texto del formato</p>'

Como si estuviera haciendo el select directamente al string así:

SELECT '<p>ingrese su texto aqui...<span>'+ CAST( (TerNombre) AS VARCHAR)+'</span>Texto del formato</p>'
from    Formatos
inner join Compradores on 1 = 1 
where   FormatoId = 2 and CompradorId = 14

Y me retornaría: '<p>ingrese su texto aqui...<span>'Nombre Comprador'</span>Texto del formato</p>'

Pero me esta retornando el campo Formato como tal, sin sustituir los datos.

One Answer

Dado que lo que tu tienes almacenado en la tabla Formato es un fragmento de consulta SQL, para lograr tu objetivo puedes construir la consulta completa en una variable y ejecutarla dinámicamente con invocando a sp_executesql.

Por ejemplo:

declare @HTMLFormato varchar(max);
declare @SQL nvarchar(max);

select @HTMLFormato = Formato
  from Formatos
 where FormatoId = 2;

set @SQL = 'select ' + @HTMLFormato + ' from Compradores where CompradorID = 14';

exec sp_executesql @SQL;

Si el SQL construido es válido, te daría como resultado:

-------------------------------------------------------------------------------------------
<p>ingrese su texto aquí...<span>Juan Pérez</span>Texto del formato</p>

(1 row affected)

Puedes también invocar a print para ver el contenido de tu consulta antes de ejecutarla:

print @SQL;

A mi me arroja:

select '<p>ingrese su texto aquí...<span>'+ CAST( (TerNombre) AS VARCHAR)+'</span>Texto del formato</p>' from Compradores where CompradorID = 14

Completion time: 2020-07-24T11:21:31.4112583-06:00

Answered by jachguate on January 1, 2022

Add your own answers!

Related Questions

mi consulta mysql sale vacia

1  Asked on November 27, 2021

   

No logro usar ALERT en JAVAFX

1  Asked on November 27, 2021 by alexvargas6

   

Llamar a Procedimiento almacenado de SQL usando PHP

1  Asked on November 27, 2021 by pike

       

recibir json y enviar los parametros al modelo

0  Asked on November 27, 2021 by carlos-enrique-gil-gil

     

Nulo en model mvc

1  Asked on November 27, 2021

       

Obtener error 404 Angular 4

1  Asked on November 24, 2021 by gerardo-gutirrez

 

Obtener JSON en PHP mediante cURL

1  Asked on November 24, 2021 by senseye3led

       

Ordenar los objetos de un array a partir de una propiedad

1  Asked on November 24, 2021 by francisco-javier-lopez-perez

         

Error al leer de un fichero Excel(*.xlxs,*.xls)

1  Asked on November 24, 2021 by rurquiza

 

¿como configuro regla firestore para borrado?

1  Asked on November 24, 2021 by marcos-galaviz

   

Problemas con ejs

1  Asked on November 24, 2021 by scc38

   

CSS – menú fijo al final de la página

2  Asked on November 24, 2021

         

Diferencia entre @RequestParam y @RequestBody

2  Asked on November 24, 2021 by gonzalo

   

Ask a Question

Get help from others!

© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP