FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Warning: Setting user variables within expressions is deprecated
Hola buenas,
Utilizo el siguiente código para extraer los registros de una tabla simple, tipo cuenta bancaria en MySQL y arrastro el saldo mediante la variable @isaldo, lo cual me funciona perfectamente.
Sin embargo ahora MySQL me devuelve el siguiente mensaje de aviso: Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'. SQL.sql 1 17 Sabeis como podria actualizar este código para evitar problemas en futuras versiones de la BD. Actualmente utilizo la version MySQL 8.0.30 Gracias y saludos. |
#2
|
||||
|
||||
Te lo está diciendo en el warning, en lugar de usar
debes usar
Saludos
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
|||
|
|||
Si, ya entiendo lo que dice el Warning pero como se desarrolla? porque así tal cual no funciona ya que ahí no se indica de que tabla se extraen entrada o salida etc. |
#4
|
||||
|
||||
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#5
|
|||
|
|||
Cita:
@isaldo debea tener un valor diferente, el saldo de la cuenta, en cada fila tal como devuelve el codigo que uso ahora y que lanza el Warning y esto es lo que no sé implementar con SELECT ... INTO .... Gracias Última edición por adrall fecha: 15-05-2023 a las 14:09:03. |
#6
|
|||
|
|||
Última edición por adrall fecha: 15-05-2023 a las 14:30:36. |
#7
|
||||
|
||||
Entonces no has hecho la pregunta correcta, porque ese enlace no habla nada de almacenar valor en variable.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
#8
|
||||
|
||||
Nunca usé esa sintaxis, pero según entiendo deberías tener el mismo error con la sintaxis anterior.
En resumen, si quieres asignar una variable desde una consulta, el resultado debe ser de una fila. Alternativamente deberías usar cursores, para ir recorriendo el resultado y aplicando tu lógica a cada registro. Cita:
Saludos.
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#9
|
|||
|
|||
Expongo un código que me da un Warning y pido una solución para ese codigo sin utilizar variables incluidas en las expresiones para evitar el warning. Me respondeis con lo de que el mismo mensaje te da la solución o bien poneis código que es erroneo como el tuyo Casimiro.
Encuentro en Stackoverflow una solución para mi código que como dije en la pregunta sirve para "extraer los registros de una tabla simple, tipo cuenta bancaria en MySQL arrastrando el saldo mediante la variable @isaldo" que, creo que no es dificil de entender. En el enlace aparece un código que hace exactamente eso: extraer datos de una tabla arrastrando el saldo sin utilizar variables y lo comparto con vosotros. |
#10
|
||||
|
||||
Cita:
La solución que pones y la pregunta inicial, dan resultados muy distintos, según el resultado en el mismo sitio que nos has compartido: https://dbfiddle.uk/JtNBNuKa OVER PARTITION agrupa, en cambio el código original acumula. PD: Todos los que colaboran en el foro, invierten su tiempo desinteresadamente para ayudar al resto, si varios usuarios no comprendimos tu problema, o bien si es difícil de comprender, o no te has explicado del todo bien o simplemente no entendemos de la materia. Saludos.
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#11
|
||||
|
||||
Además de lo comentado por delphi.com.ar ¿por qué dices que mi código es erróneo? yo no he puesto ningún código, es un "metacódigo", un ejemplo, para que lo adaptes a tu código, o sea, para que uses el nombre de tus tablas, tus campos, tus variables, etc.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal Última edición por Casimiro Notevi fecha: 16-05-2023 a las 09:44:31. |
#12
|
|||
|
|||
Muchas gracias a los dos por vuestra ayuda.
Yo, más allá de si he hecho la pregunta 100% correcta, intentaba compartir un código que soluciona mi problema. En cuanto al código de Casimiro, por supuesto que es un metacodigo y por supuesto que lo he adaptado a mis tablas / estructura pero repito, si ejecutas este código derivado de tu metacodigo:
Devuelve este error: Result consisted of more than one row. Solo estoy informando de este punto. Repito, muchas gracias |
#13
|
||||
|
||||
No hay problema, nos alegra de que lo hayas solucionado
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Que significa el error: Received content of invalid Content-Type setting:text/html... | vfogliatti | Delphi para la web | 7 | 23-01-2015 13:00:39 |
Por que suspend y resume estan "deprecated" | edgar.benavides | C++ Builder | 3 | 23-02-2010 04:02:41 |
[linux]Firebird2.0,inet server err: setting KEEPALIVE socket option | sakuragi | Firebird e Interbase | 6 | 06-06-2007 02:16:05 |
Expresiones Regulares (¿o Regular Expressions?) | Ñuño Martínez | Varios | 12 | 13-10-2006 23:36:40 |
Warning | Salomon | Varios | 2 | 05-04-2004 20:53:23 |
|