在具有参数的CLR存储过程中使用表值参数并返回到Access 2003

时间:2013-08-19 14:54:32

标签: sql vba ms-access stored-procedures clr

我正在尝试创建一个存储过程,该过程将接受一个定义为:

的Table值参数
CREATE TYPE [dbo].[address_tabletype] AS TABLE(
[CONTROL_NUMBER] [varchar](12) NULL,
[ADDRESS1] [varchar](50) NULL,
[ADDRESS2] [varchar](50) NULL,
[CITY] [varchar](50) NULL,
[STATE] [varchar](2) NULL,
[ZIP] [varchar](10) NULL
)
GO

存储过程将:

  • 获取此数据集
  • 将其操作为单个字符串
  • 执行需要数据集为单个字符串的第三方函数
  • 获取结果字符串并将其返回到值为
  • 的表中
  • 在值为本地的表类型
  • 上返回表值类型OR作为select语句的结果

经过一番研究后我发现:

Using SQL Server 2008 Table-valued Parameters in Access 2007

其中有两个兴趣点

  

要使用TVP,首先要创建一个表类型并在其中定义其结构   数据库。

这暗示我可以诱骗Access发送和接受TVP。

  

访问传递查询,顾名思义,使您可以绕过   Access数据库引擎并直接发送Transact-SQL代码   SQL Server执行。虽然可以使用传递查询   返回记录,如果要使用此功能,则无法使用此功能   表值参数。要使用TVP,您必须设置查询返回   将属性记录为No或Access将引发错误。不幸,   这意味着您将无法通过任何信息返回   传递查询机制。从中获取信息   服务器,例如新的标识值,执行单独的查询。

哪些暗示我 NOT 可能。

我一直无法对此进行测试,因为我没有Visual Studio来创建C#CLR函数,并且要求它验证是否值得进一步努力以及是否可能。

另一个人问了一个熟悉的问题,他在那里找到了一个使用C#的解决方法。这可行吗?

Pass user-defined table type from VBA to SQL

0 个答案:

没有答案