SQL: base de datos "db_prueba"
La tabla
Código SQL
[-]CREATE TABLE tbl_persona
(
codigo INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
nombre VARCHAR(25)
)
un storeprocedure para registrar personas
Código SQL
[-]CREATE PROCEDURE spNuevaPersona
@vcNombre VARCHAR(25),
@iRetorno INT OUTPUT
AS
INSERT INTO tbl_persona (nombre) VALUES (@vcNombre)
SET @iRetorno = @@IDENTITY -- Retornamos el codigo de la persona
GO
En Delphi
Código Delphi
[-]acConeccion: TADOConnection;
spProcedimiento: TADOStoredProc;
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
var
iResultado: Integer;
begin
acConeccion.ConnectionString := 'Provider=SQLNCLI.1;Persist Security Info=False;User ID=USUARIO;Password=PASSWORD;Initial Catalog=db_prueba;Data Source=.';
try
acConeccion.Open();
except
Application.Terminate();
end;
spProcedimiento.Close;
spProcedimiento.Prepared := false;
spProcedimiento.ProcedureName := 'spNuevaPersona';
spProcedimiento.Parameters.Refresh;
spProcedimiento.Parameters.ParamByName('@vcNombre').Value := 'Angeluz';
spProcedimiento.Parameters.ParamByName('@iRetorno').Value := 0;
spProcedimiento.Prepared := true;
spProcedimiento.ExecProc();
iResultado := spProcedimiento.Parameters.ParamByName('@iRetorno').Value;
acConeccion.Close();
Application.MessageBox(PChar('Codigo generado: ' + IntToStr(iResultado)), 'Resultado', 0);
end;