sql server clr 中疑问,请救我.
请看代码
<Microsoft.SqlServer.Server.SqlProcedure()> _
Public Shared Sub clgl_updatedata(ByVal cx As String, ByVal cph As String, ByVal czrs As String, ByVal ssbm As String, ByVal zt As String, ByVal gmrq As DateTime, ByVal tp As Byte(), ByVal yt As String, ByVal bz As String, ByRef is_update As Integer)
Dim cn As New SqlConnection
cn.ConnectionString = "context connection=true"
Dim cmd As New SqlCommand()
cmd = cn.CreateCommand
cn.Open()
cmd.CommandText = "if not exists(select * from 车辆基本表 where 车牌号='" & Trim(cph) & "') insert into [车辆基本表] ([车型],[车牌号], [座位数], [所属部门], [状态], [购买日期], [图片],[用途],[备注]) values (@车型,@车牌号,@座位数,@所属部门,@状态,@购买日期,@图片,@用途,@备注)"
cmd.Parameters.Add("@车型", SqlDbType.NChar, 15)
cmd.Parameters("@车型").Value = cx
cmd.Parameters.Add("@车牌号", SqlDbType.NChar, 10)
cmd.Parameters("@车牌号").Value = cph
cmd.Parameters.Add("@座位数", SqlDbType.NChar, 5)
cmd.Parameters("@座位数").Value = czrs
cmd.Parameters.Add("@所属部门", SqlDbType.NChar, 10)
cmd.Parameters("@所属部门").Value = ssbm
cmd.Parameters.Add("@状态", SqlDbType.NChar, 5)
cmd.Parameters("@状态").Value = zt
cmd.Parameters.Add("@用途", SqlDbType.NChar, 10)
cmd.Parameters("@用途").Value = yt
cmd.Parameters.Add("@购买日期", SqlDbType.DateTime)
cmd.Parameters("@购买日期").Value = gmrq
cmd.Parameters.Add("@图片", SqlDbType.Image)
cmd.Parameters("@图片").Value = tp
cmd.Parameters.Add("@备注", SqlDbType.VarChar, 200)
cmd.Parameters("@备注").Value = bz
is_update = tp.Length
cmd.ExecuteNonQuery()
cn.Close()
End Sub
这是一个sql server 2005 clr中的一个存储过程,我的问题就是在ByVal tp As Byte()这个变量中,他
传输进来的只有8000字节, 如果不使用clr,我直接在sql server 中编辑一个存储过程,用image或者binary
变量来传输参数,是没有问题的,我就是相不明白,既然有sql server clr这种东西,怎么就没有相应的变量代替
image或binary?有人说用sqlBinary变量,我试过,也不行,也是8000字节.是不是要在哪里设置一下?