Store Procedure e dışardan parametre gönderme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Bay_Y
Üye
Mesajlar: 109
Kayıt: 10 Mar 2014 11:12
Konum: İstanbul

Store Procedure e dışardan parametre gönderme

Mesaj gönderen Bay_Y » 09 Ara 2017 09:02

herkese merhabalar , şöyle bir sorunum var umarım anlatabilirim.

ALTER PROCEDURE sp_Kullanici (@kullanici nvarchar(20),
@sifre nvarchar(20),
@subekodu nvarchar(20) output,
@subeadi nvarchar(20) output ,
@firmaadi nvarchar(50) output ,
@sonuc smallint output)
AS
BEGIN
SELECT @Kullanici=kullanici, @sifre=sifre,@subekodu=subekodu,@firmaadi=firmaadi FROM w_Kullanicilar WHERE kullanici=@kullanici and sifre=@sifre
END


1 - Aşağıdaki SqL i çalıştırdığımda sorun yok değerler geliyor ama öncelikle sonuçların arasında girilen kullanıcı değişkenini de yazdırabilir miyim ?
2 - parametre gönderirken aşağıdaki gibi gönderiyorum ama output paramatrelerini nasıl göndereceğim ? Nasıl geri alacağım. ?

With FrmSifreGiris do begin
With AdoProc1 do begin
Active := False;
ProcedureName := 'sp_KullaniciVarmi';
Parameters.Refresh;
Parameters.ParamByName('@kullanici').Value := kodu ;
Parameters.ParamByName('@sifre').Value := sifresi ;

Parameters.ParamByName('@subekodu').Value;
Parameters.ParamByName('@subekodu').Direction := pdOutput;
Parameters.ParamByName('@subeadi').Value;
Parameters.ParamByName('@subeadi').Direction := pdOutput;
Parameters.ParamByName('@firmaadi').Value;
Parameters.ParamByName('@firmaadi').Direction := pdOutput;
Parameters.ParamByName('@sonuc').Value ;
Parameters.ParamByName('@sonuc').Direction := pdOutput;
ExecProc ;
if AdoProc1.Parameters.ParamByName('@sonuc').Value = '0' then begin
if AdoProc1.Parameters.ParamByName('@sonuc').value = Null then begin
ShowMessage('Kullanıcının bilgilerinde sorun var lütfen yetkiliye danışınız.');
exit;
end;
user_kullanici := kodu ;
user_firmaadi := AdoProc1.Parameters.ParamByName('@firmaadi').value ;
user_subekodu := AdoProc1.Parameters.ParamByName('@subekodu').value ;
user_subeadi := AdoProc1.Parameters.ParamByName('@subeadi').value ;
end else
begin
ShowMessage('Kullanıcı tanımlı Değil.')
end;

yukarıdaki gibi bir düzenleme yaptığımda çalışıyor değerleri geri döndürüyor
acaba kod ile ilgili bir mantık hatası veya bir sıkıntı var mı ?


Teşekkürler.

Cevapla