sql-server – 如何在Delphi中使用FireDAC使用SQL Server Table-Data类型?

例如:

我在SQL中有一个数据表类型:

CREATE TYPE dbo.typTable1 AS TABLE
(
    Field1 INT NOT NULL,
    Field2 NVARCHAR(20) NULL
)

和SQL中的存储过程,如下所示:

CREATE PROCEDRE dbo.prcTest
    @XDataTable dbo.typTable1 READONLY
AS
BEGIN
    .
    .
    .

现在问题!!! :
  当我在delphi中发送一个表作为参数时,如下所示:

FireDACStoredProcedure.Params.ParamByName('@XDataTable').AsDataset := 
    FireDACMemTable;

当我运行这个时,会出现一个不支持的错误.

请指导我……非常感谢你…

最佳答案 我在想这样的事情:

Set the DataType = ftObject;

Set datatypename = <your_procedureName>.<your_parameter>

With FireDACStoredProcedure.Params.ParamByName('@XDataTable') do
begin
DataType := ftObject;
DataTypeName := 'prcTest.@XDataTable';
end;

灵感来自https://delphiaball.co.uk/2016/04/29/interbase-array-fields-firedac/

点赞