我需要将参数作为表值传递给 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;

请注意,CreateADOObjectData.Win.ADODB.pas 中的私有(private)函数,但它非常简单。

关于sql - Delphi - 将表值参数传递给 SQL Server 存储过程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24180303/

10-13 06:23