2011-10-25 40 views
2

私はDelphiが新しく、SQL Serverのストアドプロシージャを呼び出す方法を見つけようとしています。Delphiを使用してSQL Serverストアドプロシージャのパラメータ名を渡す

これは私が現時点で取り組んできましたし、それが動作する....

FConnection := TADOConnection.Create(nil); 
FMetaDataSP := TADOStoredProc.Create(nil); 
LoadDBSettings; 

FMetaDataSP.Connection := FConnection; 
FMetaDataSP.ProcedureName := 'Messaging.ListMessageSections'; 
FMetaDataSP.Parameters.CreateParameter('@ReferralID', ftInteger, pdInput, 4, null); 
FMetaDataSP.Parameters.CreateParameter('@ConsumerID', ftInteger, pdInput, 4, null); 

Dataset := FMetaDataSP; 
FMetaDataSP.Parameters.ParamByName('@ReferralID').Value := ReferralID; 
FMetaDataSP.Parameters.ParamByName('@ConsumerID').Value := ConsumerID; 

....しかし、私はSQL Serverでプロファイルを行うときに、私は、これはそのSQLで参照コードです実行される。コードベースでのパラメータの順序は重要ではありません

exec Messaging.ListMessageSections @ReferralID=1, @ConsumerID=1 

ように、私が欲しいもの

exec Messaging.ListMessageSections 1,1 

が...代わりに、このです。

これは可能ですか?

+0

[TADOStoredProcの(デルファイ)にパラメータを渡すの良い方法]の可能な重複(http://stackoverflow.com/questions/1159489/a-better-way-of-passing-parameters-to- a-tadostoredproc-delphi) –

+0

少なくとも私が座っている場所からは少なくとも私は座っていません... SQLの呼び出しとして "Exec Messaging.ListMessageSections 1、default、1"を取得するParameters.Refreshメソッドを使用すると名前付きバージョンのパラメータもちろん、これはDelphiがしないことかもしれません。私は。ネットは知っているが、デルファイは私のために新しいです。 – Shaun

答えて

2

TADOStoredProcの代わりにTADOQueryを使用する場合、必要な操作を実行できます。

FMetaDataSP := TADOQuery.Create(nil); 
FMetaDataSP.Connection := FConnection; 
FMetaDataSP.SQL.Text := 'Messaging.ListMessageSections @ReferralID=:ReferralID, @ConsumerID=:ConsumerID'; 

FMetaDataSP.Parameters.ParamByName('ReferralID').Value := ReferralID; 
FMetaDataSP.Parameters.ParamByName('ConsumerID').Value := ConsumerID; 
FMetaDataSP.ExecSQL; 
+0

ありがとう。あなたはTADOStoredProcを使用することの他の方法は知りませんか? – Shaun

関連する問題