¿Cómo están? después de romperme los sesos con una consulta SQL que no andaba paso a comentar la solución de este error, no tan común, pero a mas de uno les puede servir, ya que da más utilidad al plugin habilitando poder usar variables de sesión directamente en DbpExecSQL y sin necesitar de usar procedimientos almacenados.
¿Qué es una variable se sesión en bases de datos? Una variable de sesión en bases de datos es una variable cuyo valor se mantiene durante la duración de una sesión de usuario en la base de datos. Estas variables son utilizadas para almacenar información temporal que debe persistir mientras la sesión esté activa, pero que se pierde cuando la sesión finaliza.
Estas variables personalizables pueden servir para gestionar datos trabajando directamente dentro del motor de base de datos como MySQL.
Para esto es requerido muchas veces usar el operador := que sirve para asignar valores a esa variable de sesión por ejemplo
SELECT @mivar := 1
Resulta que al usar : en algunas partes de la sentencia SQL muchas veces emite el error: "Objeto Parameter mal definido, se proporciono información incompleta o incoherente" o "'Parameter object is improperly defined" en DBPExecSQL
La solución practica es escapear el : doblando el mismo :: Y con este mecanismo el compilador evita compilar el dos puntos como un parámetro de Delphi. Pues resulta que internamente, como VisualNEO esta basado en Delphi y al ejecutar con el componente ADO especifico al cual llama el plugin, hay parámetros que nada tienen que ver con la consulta que en Delphi se pueden insertar con el : (dos puntos). Entonces, para evitar que esto ocurra siempre se debe escapear doblando los dos puntos.
Un ejemplo practico de uso de variable de sesión seria para enumerar los registros de la siguiente forma (remplace los valores con sus datos):
SELECT @rownum := @rownum + 1 AS row_number, columna1, columna2
FROM tabla, (SELECT @rownum := 0) AS init
ORDER BY columna1;
Espero que les sirva. Saludos.
¿Cómo están? después de romperme los sesos con una consulta SQL que no andaba paso a comentar la solución de este error, no tan común, pero a mas de uno les puede servir, ya que da más utilidad al plugin habilitando poder usar variables de sesión directamente en DbpExecSQL y sin necesitar de usar procedimientos almacenados.
¿Qué es una variable se sesión en bases de datos? Una variable de sesión en bases de datos es una variable cuyo valor se mantiene durante la duración de una sesión de usuario en la base de datos. Estas variables son utilizadas para almacenar información temporal que debe persistir mientras la sesión esté activa, pero que se pierde cuando la sesión finaliza.
Estas variables personalizables pueden servir para gestionar datos trabajando directamente dentro del motor de base de datos como MySQL.
Para esto es requerido muchas veces usar el operador := que sirve para asignar valores a esa variable de sesión por ejemplo
SELECT @mivar := 1
Resulta que al usar : en algunas partes de la sentencia SQL muchas veces emite el error: "Objeto Parameter mal definido, se proporciono información incompleta o incoherente" o "'Parameter object is improperly defined" en DBPExecSQL
La solución practica es escapear el : doblando el mismo :: Y con este mecanismo el compilador evita compilar el dos puntos como un parámetro de Delphi. Pues resulta que internamente, como VisualNEO esta basado en Delphi y al ejecutar con el componente ADO especifico al cual llama el plugin, hay parámetros que nada tienen que ver con la consulta que en Delphi se pueden insertar con el : (dos puntos). Entonces, para evitar que esto ocurra siempre se debe escapear doblando los dos puntos.
Un ejemplo practico de uso de variable de sesión seria para enumerar los registros de la siguiente forma (remplace los valores con sus datos):
SELECT @rownum := @rownum + 1 AS row_number, columna1, columna2
FROM tabla, (SELECT @rownum := 0) AS init
ORDER BY columna1;
Espero que les sirva. Saludos.
danito has reacted to this post.