如何在 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 - 如何将所有存储过程从我的机器导出到我的朋友机器?