Cita:
Empezado por duilioisola
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?