Ver Mensaje Individual
  #13  
Antiguo 05-02-2024
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Reputación: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por duilioisola Ver Mensaje
Código SQL [-]
update or insert into Cows (Name, Number, Location)   
values ('Suzy Creamcheese', 3278823, 'Green Pastures')   
matching (Number)   
returning rec_id into :id;
Me vais a mandar a hacer gárgaras, pero hoy debo estar muy espeso porque no soy capaz ni de entender muchas cosa ni de encontrarlas. En una aplicación hecha con BCB ¿Cómo uso esa claúsula returning?
Tengo, por ejemplo, este procedimiento:
Código:
CREATE OR ALTER PROCEDURE Act_Libro(Registro SMALLINT, Titulo VARCHAR(60), Autor VARCHAR(60), Genero VARCHAR(25),
Situacion VARCHAR(6))
AS
DECLARE VARIABLE NewRec SMALLINT;
BEGIN
  UPDATE OR INSERT INTO Titulos (Tipo, Registro, Titulo, Autor, Genero, Situacion) VALUES (3, :Registro, :Titulo, :Autor, :Genero, :Situacion)
  RETURNING Registro INTO :NewRec;
END;
Que en la aplicación ejecuto así:
Código:
Query->Close();
Query->SQL->Text = "EXECUTE PROCEDURE Act_Libro (:Registro, :Titulo, :Autor, :Genero, :Situacion)";
Query->ParamByName("Titulo")->AsString       = Titulo_libro->Text;
Query->ParamByName("Autor")->AsString        = Autor->Text;
Query->ParamByName("Genero")->AsString       = Genero_libro->Text;
Query->ParamByName("Situacion")->AsString    = Situacion_libro->Text;
Query->ParamByName("Registro")->AsInteger = this->Tag;
Query->ExecSQL();
Query->Transaction->Commit();
¿Cómo sé el valor que devuelve en esa variable?
Responder Con Cita