2009-08-06 15 views
7

Delphi'de bir SQLDataSet programlı olarak oluşturmak ve bir Kayıtlı Yordam yürütmek ve bir çıkış parametresinin değerini almak için kullanmak istiyorum. Kolay görünüyor ama işe yaramayacağım.Delphi: Saklı yordamın çıkış parametresinin değeri nasıl alınır?

CREATE PROCEDURE [dbo].getValue @x INT OUTPUT 
AS 
BEGIN 
    SET @x = 10; 
END 

Şimdi burada ben denedim ve işe yaramadı varyasyonlar biridir:

proc := TSQLDataSet.Create(nil); 
proc.SQLConnection := DefaultConnection; 
proc.CommandText := 'getValue'; 
proc.Params.CreateParam(ftInteger, '@x', ptOutput); 
proc.Params.ParamByName('@x').Value := 0; 
proc.ExecSQL(False); 
value := newIdProc.Params.ParamByName('@x').AsInteger; 

Bunun kolay olacağını düşündüm Burada

SQL Server bir dilsiz saklı işlemdir Ancak, bu konuyla ilgili bazı registred bugs vardır. Eğer CommandType ve SchemaName kurmak ve Param oluşturmak yoksa çalışır gibi

cevap

7

görünüyor:


proc := TSQLDataSet.Create(nil); 
proc.SQLConnection := DefaultConnection; 

proc.CommandType := ctStoredProc; 
proc.SchemaName := 'dbo'; 
proc.CommandText := 'getValue'; 

proc.ExecSQL(False); 

value := proc.Params.ParamByName('@x').AsInteger; 

İlgili konular