我是 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 1,1
我想要的是这个......
exec Messaging.ListMessageSections @ReferralID=1, @ConsumerID=1
因此代码库中参数的顺序并不重要。
这可能吗?
如果您使用 TADOQuery 而不是 TADOSstoredProc,您可以做您想做的事情。
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;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)