如何在 SQL Server 中存储图片(MS Access 界面)

Posted

技术标签:

【中文标题】如何在 SQL Server 中存储图片(MS Access 界面)【英文标题】:How do I store pictures in SQL Server (MS Access interface) 【发布时间】:2009-07-02 16:14:48 【问题描述】:

在播客 #59 之后,我一直在考虑将一些图像从 MS Access DB 移动到 MS SQL Server(这是我唯一尚未迁移的部分)。现在它们作为 OLE 对象存储在 MS Access DB 中。

但是,我不知道它们应该以什么数据类型存储在 SQL Server 端,或者如何通过接口插入它们(MS Access via ODBC)。

【问题讨论】:

插入/删除到 MS Access 是一项要求。用户在数据库中没有其他接口,图像也不是静态的, 这并不完全符合您的要求(它是从 SQL 读取,而不是写入 SQL),但也许您可以对其进行调整。祝你好运。 support.microsoft.com/?kbid=255632 【参考方案1】:

我会使用图像类型,并且不会使用 Access 来传输它们。我会使用 Sql Server 导入和导出向导来做到这一点。为此,请在 Sql Server Management Studio 中右键单击要导入的数据库,选择“任务”,然后选择“导入数据”。

【讨论】:

【参考方案2】:

MS SQL Server 中有几个 BLOB 类型的字段用于存储二进制数据 - 但其中一些有大小限制。

如果您使用 SQL 2005 或更高版本,最好的选择是 varbinary(MAX)。它可以存储非常大的数据片段。

请注意,将图片保存为 OLE 格式会在将来给您带来很多问题。当您继续前进时,请考虑将您的图像转换为常用的图形文件(如 JPG)。节省SQL Server资源,提高Access显示速度。

我建议您看看 AccessImagine (http://access.bukrek.net),它可以帮助您避免很多关于图像的麻烦。看看视频吧。

【讨论】:

【参考方案3】:

我们使用来自 Ammara 的 DBPix www.Ammara.com 已有 5 或 6 年的时间来处理捕获和显示。非常易于使用的 ActiveX 控件,文档中有完整的示例代码,而且价格合理。

我们的团队优先将图像存储在磁盘上,并通过将它们的位置存储在 varchar 中来引用它们,但控件将处理这两种方法。

【讨论】:

【参考方案4】:

您可以尝试比较它们,这可能会很有趣,因为 AccessImagine 是较新的。

【讨论】:

以上是关于如何在 SQL Server 中存储图片(MS Access 界面)的主要内容,如果未能解决你的问题,请参考以下文章

如何删除 MS SQL Server 存储过程中的 While 循环? [关闭]

在 MS Access 和 SQL Server 中处理图片

如何检查 SQL 脚本是不是在 MS SQL Server 中成功执行?

MS SQL Server - 如何将所有存储过程从我的机器导出到我的朋友机器?

如何在工作组环境中为 MS SQL Server 创建 Windows 服务帐户?

如何找到 MS SQL Server 2008 的端口?