关于 SQLServer 中 Image 使用存储过程不能更新的问题,请教各位大侠(200分)

  • 主题发起人 主题发起人 reedblue
  • 开始时间 开始时间
R

reedblue

Unregistered / Unconfirmed
GUEST, unregistred user!
老板让做一个利用 SQL 更新 Image 的程序,我搞了快一天了还没有搞定,其中最让我困惑的就是如下的存储过程:<br>drop proc mmTest<br>go<br>create proc mmTest<br>as<br>DECLARE @ptrval binary(16)<br><br>UPDATE pdLFRImage set lfrPhoto = ''<br>&nbsp; WHERE lfrID = 80000<br><br>declare @tmSQL nvarchar(1000)<br>set @tmSQL = 'SELECT @lptrval = TEXTPTR(lfrPhoto) ' +<br>&nbsp; 'FROM pdLFRImage ' +<br>&nbsp; 'WHERE lfrID = 80000 ' /* 80000是 ID 号*/<br>EXEC sp_ExecuteSQL @tmSQL, N'@lptrval varbinary(16) OUTPUT', @ptrval OUTPUT<br><br>set @tmSQL = 'WRITETEXT pdLFRImage.lfrPhoto @lptrval ''44444444444'''<br><br>EXEC sp_ExecuteSQL @tmSQL, N'@lptrval varbinary(16)', @ptrval <br><br>GO<br><br>这个存储过程在使用查询分析器调试运行时怎么也更新改变不了 lfrPhoto 的数据,<br>但是很奇怪的是,如果把里面的内容去掉有关存储过程定义的语句,直接放到查询分<br>析器下运行,则非常正常,代码如下:<br>DECLARE @ptrval binary(16)<br><br>UPDATE pdLFRImage set lfrPhoto = ''<br>&nbsp; WHERE lfrID = 80000<br><br>declare @tmSQL nvarchar(1000)<br>set @tmSQL = 'SELECT @lptrval = TEXTPTR(lfrPhoto) ' +<br>&nbsp; 'FROM pdLFRImage ' +<br>&nbsp; 'WHERE lfrID = 80000 ' /* 80000是 ID 号*/<br>EXEC sp_ExecuteSQL @tmSQL, N'@lptrval varbinary(16) OUTPUT', @ptrval OUTPUT<br><br>set @tmSQL = 'WRITETEXT pdLFRImage.lfrPhoto @lptrval ''44444444444'''<br><br>EXEC sp_ExecuteSQL @tmSQL, N'@lptrval varbinary(16)', @ptrval <br><br>我搞了快一天了还是没有搞定,请哪位熟悉的大侠伸出你的援助之手,谢谢!
 
没用过SP搞图片。。。帮顶吧。。。
 
谢顶。。。
 
接受答案了.
 
后退
顶部