首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有用户定义表类型的FSharp.Data.SqlClient类型提供程序

具有用户定义表类型的FSharp.Data.SqlClient类型提供程序
EN

Stack Overflow用户
提问于 2015-05-15 15:47:46
回答 1查看 383关注 0票数 2

我正在使用FSharp.Data.SqlClient类型提供程序,并在访问具有表值参数的存储过程时继续接收错误。

我逐字地尝试了文档中的示例。

代码语言:javascript
复制
CREATE TYPE myTableType AS TABLE (myId int not null, myName nvarchar(30) null) 
GO 
CREATE PROCEDURE myProc 
   @p1 myTableType readonly 
AS 
BEGIN 
   SELECT myName from @p1 p 
END 

这应该允许我写以下内容

代码语言:javascript
复制
type myType = AdventureWorks2012.``User-Defined Table Types``.MyTableType

但是它不会在User-Defined Table Types下返回任何选项

这使我无法调用任何接受表值参数的存储过程。

我正在运行类型提供程序的(64位)版本12.0.2000.8和版本1.6.2 (最新版本)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-15 18:24:15

这就是对我起作用的地方(可能doc还没有更新):

代码语言:javascript
复制
[<Literal>]
let connectionString = @"... My connection string here..."

type TableValuedSample = SqlProgrammabilityProvider<connectionString>
type myType = TableValuedSample.dbo.``User-Defined Table Types``.myTableType
let m = [ 
    myType(myId = 2, myName = "Mike")
    myType(myId = 1, myName = "Pete") 
]
let myArray = 
    (new TableValuedSample.dbo.myProc()).AsyncExecute(m) // syntax difference
    |> Async.RunSynchronously 
    |> Array.ofSeq

let myRes = myArray.[0]
match myRes with
    | Some res -> res
    | None -> ""

结果:

代码语言:javascript
复制
>
val myArray : Option<string> [] = [|Some "Mike"; Some "Pete"|]
val myRes : Option<string> = Some "Mike"
val it : string = "Mike"

我正在使用MSSQL 2014和1.6.2提供程序。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30263690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档