我在 MS SQL Server 2008 中创建了一个 TVP 存储过程:
CREATE PROCEDURE [TVPSP] @CID INT
,@OID INT = NULL
,@GAS ParamTypeTVP readonly
,@ErrorText VARCHAR(100) OUTPUT
AS
BEGIN
select 1
RETURN
END
我还创建了一个 TVP 类型:
CREATE TYPE [MDF].[ParamTypeTVP] AS TABLE(
[ParamID] [int] IDENTITY(1,1) NOT NULL,
[pInt1] [int] NULL,
[pVarchar1] [varchar](777) NULL,
PRIMARY KEY CLUSTERED
(
[ParamID] ASC
)WITH (IGNORE_DUP_KEY = OFF)
)
我使用 Powerbuilder 内置方法生成了声明,结果是:
function long TVPSP(long CID,long OID,string GAS,ref string ErrorText) RPCFUNC ALIAS FOR "TVPSP"
因此,如您所见,PB 为 TVP 参数生成了一个字符串变量,该参数为假(当然,PB 的调用失败)。有可能让它以某种方式工作吗?当然,我有解决方法的想法(例如制作一个包装器 sp 以忽略 TVP 参数),但我想知道如何让它以这种方式与 TVP 一起工作!
提前谢谢!
加博尔