<Microsoft.SqlServer.Server.SqlProcedure()> _
Public Shared Sub 系统启动_身份验证(ByVal abc As Structured) ', ByRef obj_输出参数 As Object) '
Dim cn As New SqlConnection
cn.ConnectionString = "context connection=true"
Dim cmd As New SqlCommand()
cmd = cn.CreateCommand
cmd.CommandText = "select * from abc"
cn.Open()
Dim int_影响行数 As Integer
int_影响行数 = cmd.ExecuteNonQuery()
'If int_影响行数 = 1 Then
' obj_输出参数.Item(0) = 1
' obj_输出参数.Item(1) = "gyuser"
' obj_输出参数.Item(2) = "hainanjtk999"
'Else
' obj_输出参数.Item(0) = 0
'End If
cn.Close()
End Sub以上是一个vs2010 下的sql clr 过程,在往sql server 2008部署的过程中报错。
其中ByVal abc As Structured 这句提示出错。
现在的想法是处理一个表值的参数,按照常见的例子,如果用sql 来写存储过程是没问题的。
现在是想用vs 2010 来写这个存储过程,这种情况下,写ByVal abc As Structured,他
部署的时候提示无法创建类型。是哪里写得不对呢?在用vs 2010来写存储过程的时候,如何注明这个
用户自定表类型?求求各位大爷,急了。
Public Shared Sub 系统启动_身份验证(ByVal abc As Structured) ', ByRef obj_输出参数 As Object) '
Dim cn As New SqlConnection
cn.ConnectionString = "context connection=true"
Dim cmd As New SqlCommand()
cmd = cn.CreateCommand
cmd.CommandText = "select * from abc"
cn.Open()
Dim int_影响行数 As Integer
int_影响行数 = cmd.ExecuteNonQuery()
'If int_影响行数 = 1 Then
' obj_输出参数.Item(0) = 1
' obj_输出参数.Item(1) = "gyuser"
' obj_输出参数.Item(2) = "hainanjtk999"
'Else
' obj_输出参数.Item(0) = 0
'End If
cn.Close()
End Sub以上是一个vs2010 下的sql clr 过程,在往sql server 2008部署的过程中报错。
其中ByVal abc As Structured 这句提示出错。
现在的想法是处理一个表值的参数,按照常见的例子,如果用sql 来写存储过程是没问题的。
现在是想用vs 2010 来写这个存储过程,这种情况下,写ByVal abc As Structured,他
部署的时候提示无法创建类型。是哪里写得不对呢?在用vs 2010来写存储过程的时候,如何注明这个
用户自定表类型?求求各位大爷,急了。
解决方案 »
- win7下安装SQL Server2008出错,诚求解答
- insert select 语句把查询出来的数据相乘
- 请问如何获取当前登录用户的的schema?
- 数值型后面家0的问题
- SQLServer服务管理器突然无法启动
- MS SQL如何創建系統函數,高手請進
- 求救,在线等待:我的操作系统是XP专业版,我现在急用SQL Server,但是只能装客户端
- 请教高手!!!sp_addlinkedserver 使用问题???(急!!!!)
- sql 查询问题
- 求一个SQL语句,谢谢
- SQL数据库发布订阅问题
- 一条sql查询语句 里面有用户、登录时间、登出时间 等字段写一条sql语句实现查询每个用户当天的的在线时间 见图
还有cmd.executenonquery()返回的是受影响的行数,不是结果集。
那么数据库就要有一个自定义的类型去接收这也是你原来的套路,关键是在于这个类型,而不是你的sp即便是你定义一个clr的sp,你的sp在调用的时候还是要有个类型去接收这个table 的建议:传一个xml过来,省去了clr的麻烦,也省去了表类型的固定不变
所以想做一个通用的存储过程读取类,减少代码的录入,规范程序的书写,增加代码的可读性。
这种情况下,输入、输出参数的个数就需要固定(这里是1个)。
经过一个星期的折腾,还是放弃使用自定义表作为输入参数,因为在vs 2010下,没找到建立自定表的方法。
最后的解决方法是,输入参数用udt,输出参数用SqlDataRecord,这样就确保输入输出参数只有一个。
初步的测试成功。