我正在使用FSharp.Data.SqlClient类型提供程序,并在访问具有表值参数的存储过程时继续接收错误。
我逐字地尝试了文档中的示例。
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 这应该允许我写以下内容
type myType = AdventureWorks2012.``User-Defined Table Types``.MyTableType但是它不会在User-Defined Table Types下返回任何选项
这使我无法调用任何接受表值参数的存储过程。
我正在运行类型提供程序的(64位)版本12.0.2000.8和版本1.6.2 (最新版本)
发布于 2015-05-15 18:24:15
这就是对我起作用的地方(可能doc还没有更新):
[<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 -> ""结果:
>
val myArray : Option<string> [] = [|Some "Mike"; Some "Pete"|]
val myRes : Option<string> = Some "Mike"
val it : string = "Mike"我正在使用MSSQL 2014和1.6.2提供程序。
https://stackoverflow.com/questions/30263690
复制相似问题