SQL2008的FileStream功能真烂

51Crack 2011-10-14 07:25:36
搞了两天,终于搞明白读写文件了,结果一堆问题(本机使用)

C/S
1.数据连接字符串只能用信任连接
2.写入的数据记录如果删除了,对应的文件不会同时删除,用CheckPoint也没用
3.写入的文件只有文本文件可以正常读取,其它文件都会提示System.InvalidOperationException: 该进程无法访问指定的文件,因为另一事务已打开了该进程。,这么个鸟错误

哪位知道原因,解决了我继续用,否则不用这个垃圾了
...全文
387 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolchangecool 2011-11-24
  • 打赏
  • 举报
回复
SQL 2008中的FileStream确实是个新功能,这两天正好用上了这个功能。
我的应用场景如下:
1、需要频繁的将图像数据存入局域网中的服务器。
2、每次存入的图像数据较大,每条记录大概11M
3、实时性要求非常高,也就是说存入时间要做到尽量短。

经过1天的研究,现在已基本搞定了。
我用实验程序测试了一下,存1条记录的耗时大概在500毫秒左右。

现在唯一的问题是,当我在数据库中删除记录时,磁盘上对应的文件没有删掉,用了CheckPoint也不行。有没有高手出来指点一下?
51Crack 2011-10-17
  • 打赏
  • 举报
回复
之前用的FileStream.WriteByte,所以慢,改为FileStream.Write快多了,2、3秒
卧_槽 2011-10-17
  • 打赏
  • 举报
回复
sqlserver本来就不是用来拷贝文件的。
51Crack 2011-10-17
  • 打赏
  • 举报
回复
本机测试,读取2.5M的文件再写到磁盘要20多秒,效率太低
gaoxg17 2011-10-17
  • 打赏
  • 举报
回复
51Crack 2011-10-17
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 nbdba 的回复:]
放弃FileStream吧,等以后版本微软有解决方法再说。
[/Quote]
NBDBA 2011-10-17
  • 打赏
  • 举报
回复
放弃FileStream吧,等以后版本微软有解决方法再说。
NBDBA 2011-10-17
  • 打赏
  • 举报
回复
用sql身份验证的方式,就不能使用FileStream的文件读写方式
NBDBA 2011-10-17
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 51crack 的回复:]
最想解决的是第1个问题,不想用windows验证,很麻烦
[/Quote]
明确的是,第一个问题现在是解决不了的
51Crack 2011-10-17
  • 打赏
  • 举报
回复
我希望用sql身份验证的方式,它也能把存在服务器上的文件以文件流方式给我(SqlFileStream)
51Crack 2011-10-17
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 icedmilk 的回复:]
关系数据库只是用来处理数据关系的,根据各种条件查询数据是他的强项

一般涉及文件的架构,数据库里只是存储文件的索引路径,而具体的文件肯定要放在高性能的文件服务器上
[/Quote]
2008的FileStream就是把文件存在服务器上,从数据库中读到的文件路径是\\xx\...,属于共享方式,所以它需要windows验证方式登录
但这个不是我需要的
Icedmilk 2011-10-17
  • 打赏
  • 举报
回复
关系数据库只是用来处理数据关系的,根据各种条件查询数据是他的强项

一般涉及文件的架构,数据库里只是存储文件的索引路径,而具体的文件肯定要放在高性能的文件服务器上
51Crack 2011-10-17
  • 打赏
  • 举报
回复
最想解决的是第1个问题,不想用windows验证,很麻烦
koumingjie 2011-10-17
  • 打赏
  • 举报
回复
都没听说过啊
山东蓝鸟贵薪 2011-10-17
  • 打赏
  • 举报
回复
没看明白呀,详细说明一点

我也想学习学习
cjh200102 2011-10-17
  • 打赏
  • 举报
回复
哦,回去试试
tianxia08 2011-10-15
  • 打赏
  • 举报
回复
好用么
51Crack 2011-10-15
  • 打赏
  • 举报
回复
第3个问题已经找到原因,select中不能用"*",必须直接写具体的字段名
51Crack 2011-10-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 athwind 的回复:]
太前卫了,只知道.net的FileStream,什么时候Sql Server也有了,虽然也在用Sql Server 2008,但是基本上只是当它是Sql Server 2000在用
[/Quote]
实际的文件保存在服务器的硬盘上,读取时读到的文件是"\\xxxx",还是通过网上邻居,所以要使用信任连接
51Crack 2011-10-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 athwind 的回复:]
太前卫了,只知道.net的FileStream,什么时候Sql Server也有了,虽然也在用Sql Server 2008,但是基本上只是当它是Sql Server 2000在用
[/Quote]
实际的文件保存在服务器的硬盘上,读取时读到的文件是"\\xxxx",还是通过网上邻居,所以要使用信任连接
加载更多回复(2)

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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