我需要将参数作为表值传递给 SQL Server 中的存储过程。如何在 Delphi 中处理这个问题?
最佳答案
可从 http://msftdpprodsamples.codeplex.com/wikipage?title=SS2008%21Readme_Table-Valued%20Parameters 下载的示例是用 C++ 编写的,但可以很容易地转换为 Delphi。
将该代码转换为 Delphi 后,您可以使用以下内容使结果集可通过良好的 ole ADO 访问:
SourcesRecordset := CreateADOObject(CLASS_Recordset) as _Recordset;
RSCon := SourcesRecordset as ADORecordsetConstruction;
RSCon.Rowset := rowset;
LDataSet := TADODataSet.Create(nil);
try
// Only doing the first result set
LDataSet.Recordset := SourcesRecordset;
while not LDataSet.Eof do
begin
//... something
LDataSet.Next;
end;
finally
LDataSet.Free;
end;
请注意,
CreateADOObject
是 Data.Win.ADODB.pas
中的私有(private)函数,但它非常简单。关于sql - Delphi - 将表值参数传递给 SQL Server 存储过程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24180303/