Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Swap entre campos en Firebird (https://www.clubdelphi.com/foros/showthread.php?t=95077)

santiago14 16-02-2021 17:40:45

Swap entre campos en Firebird
 
Buenas, tengo una consulta bastante simple. Debo intercambiar los datos de los campos en una Tabla.
¿Existe una función, onda swap, para hacerlo?
De no ser así, ¿cómo sería una buena forma de hacerlo?

Muchas gracias.

Casimiro Notevi 16-02-2021 18:12:58

Si tienes campo1 y campo2, quieres cambiar lo que hay en campo1 a campo2 y lo que hay en campo2 a campo1.

Creas un campo nuevo temporal, pasas los datos de campo1 a campo temporal, pasas los datos del campo2 a campo1, pasas los datos de campo temporal a campo 2.
También puedes hacer usando una tabla en memoria, lista, etc.

ecfisa 16-02-2021 18:43:24

Hola.

A primera vista no parece lógico, pero en mis pruebas funciona correctamente de este modo:
Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  // Mostrar en DBGrid
  IBQuery1.SQL.Text := 'SELECT * FROM TEST';
  IBQuery1.Open;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  qyTmp.SQL.Text := 'UPDATE TEST SET VALOR0 = VALOR1, VALOR1 = VALOR0';
  qyTmp.ExecSQL;
  IBQuery1.Close; 
  IBQuery1.Open;
end;



Saludos :)

Casimiro Notevi 16-02-2021 19:02:49

¡¡¡Muy bueno!!! ^\||/


La franja horaria es GMT +2. Ahora son las 03:22:12.

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