sql-server - varbinary 数据类型如何存储图像以供用户在 Access 前端查看?
问题描述
我做了一些研究,网络把我带到了各个地方,但我仍然没有找到合适的解决方案或指导我想要实现的目标。
我阅读了与我所要求的内容类似的帖子。除了 #php 在 SQL Server 中检索图像(varbinary)
更新:“常规”方式是创建文件目录和文件路径。这是我为用户启动并运行前端的初始方法。我的 sup 实际上建议我使用这种哈希方法胡说八道,他甚至无法向我正确解释。
用户必须能够在表单上插入图像,同时生成显示图像的报告。
varbinary 如何为我想要实现的目标链接 sql 和 Access?我目前正在玩我的开发来解决它。
任何澄清?在我第一次编辑之后,我没有其他方法可以提出这个问题。
对于每个表单条目,用户应该插入一张图片来支持调查结果。
解决方案
SQL Server 中的VARBINARY
字段是存储二进制数据的字段,常用于存储文件。您可以在此字段中放置整个文件。
如果您VARBINARY
在 SQL Server 中有一个字段,并在 Access 中创建一个链接表来访问该字段的表,它会被解释为 OLE 对象,因为 OLE 对象也是二进制数据。
您可以使用 Access 中的绑定对象框架控件将图像保存到 OLE 对象中,既可以作为图像(可显示),也可以作为包。这不需要任何代码。您可以右键单击字段 -> 插入对象 -> 位图图像以将位图图像插入 OLE 字段。但是,这会将 OLE 对象数据与图像数据一起存储,这使得使用代码非常难以使用,并且在非 vba 应用程序中几乎是不可能的。在我看来,只有当您确定要在数据库的整个生命周期内坚持使用 Access 时,使用这种方法才是合理的。
我在这里分享了一个使用 VBA 代码和 OLE 对象的示例,但它使用了执行 GUI 操作的 hacky 代码。移植到其他应用程序几乎是不可能的。我建议您改用下一种方式。
或者,您可以直接将二进制数据存储在 OLE 对象/Varbinary 字段中。这使得处理使用 VBA 代码或任何未来应用程序变得更加容易,因为它只是存储在字段中的文件数据,没有存储 OLE 对象数据。我已共享代码以在字段中加载二进制数据并将其保存回磁盘。
如果您只是处理二进制图像数据,这个难题的难点在于向用户显示图像。我在这里分享了 3 种方法,其中一种方法的代码。但是,这是相当复杂的 VBA 代码。
推荐阅读
- c - 将'float(float)'传递给不兼容类型'float'的参数
- python - 从 Lambda 函数访问私有 API
- java - 设置操作的优先级。计算器应用
- java - 按每行的平均值对二维数组进行排序
- javascript - 如何自定义 HTML DATE 输入.. 除了 jQuery datePicker 之外还有哪些选项?
- python-3.x - Julia 是否需要矢量化来加快计算速度?
- python - 如何使用 Python ping java 和基岩 Minecraft 服务器的信息
- arrays - 打字稿映射类型意外值签名
- python - python Opencv2 显示图像并同时调用其他函数
- node.js - 无法连接到mysql远程数据库