参数数据类型 varbinary(max) 对于 textptr 函数的参数 1 无效

微wx笑
Java领域优质创作者
博客专家认证
2011-11-28 01:41:42
SQL Server 2008
DECLARE @ptrval varbinary(16);
SELECT @ptrval = TEXTPTR(FileContent) FROM File WHERE ID = 67;
FileContent 的类型是[FileContent] [varbinary](max) FILESTREAM NULL,
如何在不改变表结构的情况下解决这个问题?
...全文
367 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
微wx笑 2012-02-23
  • 打赏
  • 举报
回复
SQL Server 2008 的 FILESTREAM 都没人用吗?

怎么就没人能解答我的问题呀!……
微wx笑 2011-12-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 ap0405140 的回复:]

貌似要在前端程序中处理的喔,用fileStream对象.

参考 http://blog.csdn.net/educast/article/details/4375596
[/Quote]

文章中使用的是image类型,并不是[varbinary](max) FILESTREAM 类型!!
唐诗三百首 2011-11-29
  • 打赏
  • 举报
回复
貌似要在前端程序中处理的喔,用fileStream对象.

参考 http://blog.csdn.net/educast/article/details/4375596
微wx笑 2011-11-29
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ap0405140 的回复:]

try this,
SQL code

DECLARE @ptrval varbinary(16);
SELECT @ptrval = TEXTPTR(cast(FileContent as ntext)) FROM File WHERE ID = 67;
[/Quote]

这个思想还是有的,首先想到的就是类型转换。

从FileStream转到Ntext也是个错误行为,二进制文件怎么能转成Ntext

错误信息:不允许从数据类型 varbinary(max) 到 ntext 的显式转换。

DECLARE @ptrval varbinary(16);
SELECT @ptrval = TEXTPTR(cast([FileContent] as image)) FROM [File] WHERE sysID = 609

错误信息:在 TEXTPTR 函数中只允许使用基表列。


微wx笑 2011-11-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 roy_88 的回复:]

參照操作方法
http://technet.microsoft.com/zh-cn/library/cc645962.aspx
[/Quote]

这下面相关的文章都看过了,我要实现的是大文件的 分段读取 和 分段写入
fcuandy 2011-11-28
  • 打赏
  • 举报
回复
TEXTPTR只针对老版本的blob数据进行操作。

对于这些max数据, 如果小于8kb,那么则将存在数据页内, 如果大于8k,则以以前老版本的blob的方式仅存放二进制指针.
也就是说同一个表中的max数据,可能某些行存在数据页中,某些行只是存放了指针,理解了这一点,可以想像实际上TEXTPTR不再对max数据操作通用。所以新的架构(05/08)屏蔽了用户的这个“接口"

楼主的意图是想拿到这个varbinary(max)域的指针吧,通过上面的描述,你应该明白,这样是不能获取到的。

对于4楼先cast再textptr的作法,实际上跟楼主的意图已经不一样了,仅仅只是形似,语法不报错,你所取的已经是一个内存数据的指针了。

微软已声明,不建议在工作中使用一些功能, 比如text,image, textptr等等。
textptr的存在的意义也仅仅是为了暂时的兼容。
唐诗三百首 2011-11-28
  • 打赏
  • 举报
回复
try this,

DECLARE @ptrval varbinary(16);
SELECT @ptrval = TEXTPTR(cast(FileContent as ntext)) FROM File WHERE ID = 67;
快溜 2011-11-28
  • 打赏
  • 举报
回复
为什么用TEXTPTR,FileContent本身就是varbinary,你直接写只会截断一部分吧
中国风 2011-11-28
  • 打赏
  • 举报
回复
TEXTPTR--這是text、ntext 或 image時用的

中国风 2011-11-28
  • 打赏
  • 举报
回复

6,129

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 新技术前沿
社区管理员
  • 新技术前沿社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧