问题标签 [sqlfilestream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
356 浏览

asp.net - 带有分块文件的 SQLFileStream

我在尝试使用 FileStream 将文件上传到我们的 SQL DB 时有点卡住了。我已经按照这个例子http://www.codeproject.com/Articles/128657/How-Do-I-Use-SQL-File-Stream但不同的是我们以 10mb 块上传文件。

在第一个块上,在数据库中创建一个内容为空的记录(以便创建一个文件),然后为每个块调用 OnUploadChunk。

该文件正在上传,但是当我检查时,已经为每个块创建了一个新文件,因此对于一个 20mb 的文件,我有一个 0kb,另一个是 10mb,最后一个是 20mb。我期待一个20mb的文件。

我猜这可能与获取事务上下文或错误地使用我还没有完全掌握的 TransactionScope 有关。我认为这对于每个块可能会有所不同,因为它往返于客户端和服务器之间。

这是每次从客户端发送块时调用的方法(如果有任何相关性,则使用 PlupLoad)。

更新:

我做了一些研究,我相信这个问题是围绕着这个:

FILESTREAM 目前不支持就地更新。因此,通过创建一个新的零字节文件来实现对具有 FILESTREAM 属性的列的更新,然后将整个新数据值写入该文件。提交更新后,文件指针将更改为指向新文件,而旧文件将在垃圾收集时被删除。这发生在简单恢复的检查点以及备份或日志备份中。

那么我是否只需要等待垃圾收集器删除分块文件?或者我应该先将文件上传到文件系统的某个位置,然后再复制它?

0 投票
1 回答
619 浏览

c# - SqlFileStream 追加新数据创建新文件

我分部分发送文件SqlFileStream。像这样:

我尝试分 10 部分上传文件。当我查找保存数据的文件夹时,我看到了 10 个文件。为每个附加部件SqlFilesStream创建一个新文件。最后一个文件包含所有数据但其余文件不必要地浪费了空间。是否可以将所有数据保存在一个文件中 - 最后一次追加操作?

0 投票
3 回答
6870 浏览

sql - 应用文件流设置时出现未知错误。检查参数是否有效

尝试在 SQL Server 2012 中配置 FileStream 时出现以下错误。

应用文件流设置时出现未知错误。检查参数是否有效。(0x80041008)

我正在使用 SQL Server 配置管理器对其进行配置。

我可以在哪里为 SQL Server 2008 R2 设置它。

0 投票
0 回答
147 浏览

sql-server - 使用 Change Data Capture 跟踪 FileStream 数据

我需要一个数据库

  • 管理具有事务支持的文档和
  • 可以将一行和相应文档的状态恢复到更早的时间点。

我倾向于使用 SQL Server FileStream 功能,因为它似乎完全符合我的大部分要求。

对于数据历史,SQL Server 解决方案似乎是变更数据捕获 (CDC) 功能。

  1. 这是否与 SQL Server 2012 上的 FileStream 结合使用?是否会跟踪通过 Win32 SqlFileStream 类所做的文档更改?我可以通过这种方式恢复我的文档的旧状态吗?
  2. 如果不是,那么跟踪文档更改以及存储在相应列中的元数据的推荐解决方案是什么?触发器?
0 投票
0 回答
81 浏览

sql - SQL FILESTREAM 和连接池

我目前正在增强产品以支持大型文件内容的 Web 交付。我想将它存储在数据库中,无论我是否选择通过BLOB FILESTREAM,以下问题仍然成立。

我的 WCF 方法将返回一个流,这意味着在客户端读取内容时文件流将保持打开状态。如果连接速度很慢,则流可能会打开一段时间。

问题:连接池假设连接仅在短时间内独占。我是否正确假设,假设我有一个有限大小的连接池,如果使用慢速网络连接下载文件,可能会出现争用问题?

在这种假设下,我真的很想使用 FILESTREAM,并直接从文件系统打开文件,而不是 SQL 连接。但是,如果数据库是远程的,我将别无选择,只能从 SQL 连接中提取内容(直到我有文件的本地缓存)。

我意识到我还有其他选择,例如服务器缓冲流,但这也会产生影响。我现在希望只讨论与返回从 DB 连接获得的流有关的问题。

0 投票
2 回答
1072 浏览

c# - SqlFileStream 异常“传递给函数的参数无效”

我得到了这个例外:

传递给函数的参数无效

当尝试从SqlFileStream. 代码:

我检查了所有非空参数。我一直在使用这个完全相同的代码,没有任何问题,我不知道现在发生了什么。

0 投票
1 回答
4638 浏览

sql - 如何在 SQL Filetable 中的目录下插入文件

我在文件表中创建了一个目录。现在我需要在该目录中插入文件。由于 parent_path_locator 无法设置,我想不出如何实现这一点。我在代码中做所有这些。

这就是我创建目录的方式;

注意:我看到我们可以使用 dbo.GetNewPathLocator(path) 根据路径定位器获取子目录路径。但我不确定如何在我的情况下使用它来插入文件。

更新:我发现如何在 TSQL TSQL中做到这一点,但如何在代码中做到这一点?

0 投票
1 回答
209 浏览

sql-server-2008 - 移动使用文件流的数据库

我启用了文件流,并在 SQL Server Management Studio 中创建了一个带有文件组/文件流的数据库。

我想在 Visual Studio 中使用生成的数据库,所以我将 2 个文件(mdf 和 ldf)和文件流文件夹复制到 App_Data。

我在 VS 服务器资源管理器中收到以下错误消息:

FILESTREAM 功能被禁用。
发生文件激活错误。物理文件名“C:\Users\User\Documents\Visual Studio 2010\WebSites\FOO\App_Data\fooFilestream”可能不正确。诊断并更正其他错误,然后重试该操作。
无法打开新数据库“C:\USERS\USER\DOCUMENTS\VISUAL STUDIO 2010\WEBSITES\FOO\APP_DATA\FOO.MDF”。CREATE DATABASE 已中止。
尝试为文件 C:\Users\User\Documents\Visual Studio 2010\WebSites\FOO\App_Data\foo.mdf 附加自动命名数据库失败。存在同名数据库,或无法打开指定文件,或位于 UNC 共享上。

有什么建议么?此过程适用于不使用文件流的数据库。

0 投票
0 回答
48 浏览

sql - 意外删除 SQL 文件流共享位置

我意外删除了 SQL 文件流共享位置,有没有办法恢复共享位置。当我尝试从 SSMS 探索文件表目录打开 SQL 文件表时,它可以在服务器上运行,但不允许从客户端计算机打开。我已经为 SQL 文件共享启用了远程访问。有没有办法恢复回来。

也有人可以建议我无法从 SSMS 打开文件资源管理器。它显示未经授权的访问

0 投票
1 回答
573 浏览

c# - 使用 EF6 在数据库 ASP.NET MVC5 中存储文档 - 代码优先

我目前正在开发一个需要为系统中的每个用户存储大约 5x2mb 文件的项目。最终会有数以万计的用户。我使用的是 ASP.NET MVC5、EF6 代码优先。

我已经阅读了有关 using的信息Filestream,这样我就不会用大量文件污染数据库。但是我找不到任何关于如何编写代码优先实体来使用这种类型的示例。

非常感谢任何样品或替代解决方案!