¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo ejecutar una consulta SQL de manera efectiva en el Generador de Consultas: Consejos y trucos para evitar errores comunes

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 3 Vistas
0
Cargando...

Hola,

Solo intenta ejecutar la siguiente consulta de 2 maneras diferentes en el Generador de Consultas:

UNO (Esta forma está bien. Sin embargo, no necesitamos la variable @var. Resultado 'hhh')

-


declare @var varchar(1)

set @var = 'w'

SI 'w' ='w'

BEGIN

select 'hhh'

END

DOS (Igual que UNO pero sin @var): ¡Error: "Sintaxis incorrecta cerca de la palabra clave FOR" !!!???

-


SI 'w' ='w'

BEGIN

select 'hhh'

END

¿Tienes alguna idea de este comportamiento extraño? Muchas gracias.

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Sí, parece ser así. ¡Muchas gracias por tu ayuda!

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Es curioso. Creo que lo que has encontrado es un pequeño error en el procesamiento de SQL de Business One.

Cuando ejecutas SQL en B1, el SQL no se pasa directamente a la base de datos, sino que B1 realiza algún preprocesamiento para manejar cosas como parámetros que no son una característica de SQL, sino que existen solo en B1. Si ejecutas tu consulta directamente en SQL, entonces funciona bien.

Parece que a B1 no le gusta una consulta que comienza con IF. Probablemente comenzar con cualquier otra declaración de SQL es suficiente para hacer que el error desaparezca. En tu ejemplo, ni siquiera necesitas la declaración SET, solo el DECLARE.

Parece que ya has resuelto tu problema: simplemente coloca el DECLARE adicional al principio de tu código.

Saludos,

Douglas

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Bueno, quiero probar el valor de una variable de formulario. Entonces, digamos:

if $[Tabla.campo] = valor

en lugar de " W=W.

Lo extraño es que al declarar @var primero $[] está tomando su valor correctamente, pero si @var no está declarado, entonces $[] no está tomando su valor.

Esta cosa me ha parecido muy curiosa.

¿Tienes alguna explicación para esto?

Gracias

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

¿Puedo preguntar qué estás intentando hacer aquí? ¿Por qué estás verificando 'w' = 'w', siempre va a ser Verdadero.

¿Realmente estás intentando verificar el valor de un campo del formulario?

Por favor, házmelo saber.

Suda

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?