Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-05-2023
adrall adrall is online now
Miembro
 
Registrado: ene 2007
Posts: 94
Poder: 18
adrall Va por buen camino
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.

Código SQL [-]
SET @isaldo:=0; 
SELECT *, @isaldo:=ROUND(@isaldo+entrada-salida,2) AS saldo FROM datos ORDER BY fecha_valor;

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.
Responder Con Cita
  #2  
Antiguo 12-05-2023
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Te lo está diciendo en el warning, en lugar de usar
Código SQL [-]
SELECT @isaldo:=ROUND(@isaldo+entrada-salida,2)....
debes usar
Código SQL [-]
SELECT ROUND(@isaldo+entrada-salida,2) INTO @isaldo....

Saludos
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 14-05-2023
adrall adrall is online now
Miembro
 
Registrado: ene 2007
Posts: 94
Poder: 18
adrall Va por buen camino
Código SQL [-]
SELECT @isaldo:=ROUND(@isaldo+entrada-salida,2)....

Código SQL [-]
SELECT ROUND(@isaldo+entrada-salida,2) INTO @isaldo....


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.
Responder Con Cita
  #4  
Antiguo 15-05-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Código SQL [-]
select campo from tabla into variable
Responder Con Cita
  #5  
Antiguo 15-05-2023
adrall adrall is online now
Miembro
 
Registrado: ene 2007
Posts: 94
Poder: 18
adrall Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Código SQL [-]
select campo from tabla into variable
Esto devuelve error: Result consisted of more than one row

@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 13:09:03.
Responder Con Cita
  #6  
Antiguo 15-05-2023
adrall adrall is online now
Miembro
 
Registrado: ene 2007
Posts: 94
Poder: 18
adrall Va por buen camino
Stack overflow nos da la solución tanto en MariaDB como en Mysql 8.0:

https://dbfiddle.uk/v7D9TniE

Última edición por adrall fecha: 15-05-2023 a las 13:30:36.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

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 12:00:39
Por que suspend y resume estan "deprecated" edgar.benavides C++ Builder 3 23-02-2010 03:02:41
[linux]Firebird2.0,inet server err: setting KEEPALIVE socket option sakuragi Firebird e Interbase 6 06-06-2007 01:16:05
Expresiones Regulares (¿o Regular Expressions?) Ñuño Martínez Varios 12 13-10-2006 22:36:40
Warning Salomon Varios 2 05-04-2004 19:53:23


La franja horaria es GMT +2. Ahora son las 12:38:07.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi