Hai,
irgendwie scheine ich mich zu dumm anzustellen.
Ich möchte über eine SP Daten in eine Tabelle eintragen und die ID des letzten Datensatzes zurück bekommen.
Meine SP sieht so aus:
SQL-Code:
USE [schluessel]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE Procedure [dbo].[Benutzer_Neu] @vorname VarChar (50), @nachname VarChar(50), @anmeldename VarChar(50), @kennwort VarChar(50), @lastID int output
as
begin
set nocount on
insert into benutzer (vorname, nachname, anmeldename, kennwort)
Values (@vorname, @nachname, @anmeldename, @kennwort)
select @lastID = @@Identity
set nocount on
end
Wenn ich das über die Managementkonsole teste funktionert das auch.
In Delphi rufe ich das dann so auf:
Delphi-Quellcode:
procedure TMain_Form.Button1Click(Sender: TObject);
var
lastID : Integer;
begin
with DataModule1.ADOStoredProc1 do
begin
Parameters.Refresh;
Parameters.ParamValues['@vorname'] := 'Vorname';
Parameters.ParamValues['@nachname'] := 'Nachname';
Parameters.ParamValues['@anmeldename'] := 'Anmeldename';
Parameters.ParamValues['@kennwort'] := 'Kennwort';
ExecProc;
lastID := Parameters.ParamValues['@lastID'];
end;
end;
Aber ich bekomme immer diese Fehlermeldung:
Die Prozedur oder Funktion 'Benutzer_Neu' erwartet den '@lastID'-Parameter, der nicht bereitgestellt wurde.
Stephan B.
"Lasst den Gänsen ihre Füßchen"