【问题标题】:How to use SQL Server Table-Data type, in Delphi, using FireDAC?如何在 Delphi 中使用 FireDAC 使用 SQL Server 表数据类型?
【发布时间】:2017-05-13 06:08:14
【问题描述】:

例如:

我在 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;

当我运行它时,一个错误提示说不支持。

请指导我...非常感谢您...

【问题讨论】:

  • 暂时忘记你的 Delphi 代码:你能成功地从 SSMS 中的 TransactSQL 脚本调用你的 prcTest 吗?
  • 请不要发布“CREATE PROCEDRE”之类的假代码。 @XDataTable 之前是否还有任何文本丢失?
  • 你好亲爱的 MartinA...当然...我会发布整个代码...谢谢...

标签: sql-server delphi


【解决方案1】:

我在想这样的事情:

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/

【讨论】:

  • @Vahid 接受答案
猜你喜欢
  • 1970-01-01
  • 2013-11-12
  • 1970-01-01
  • 2020-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-15
  • 1970-01-01
相关资源
最近更新 更多