ms-access-2010 - 使用 Java 从 MS Access 向文件系统写入/读取 OLE 对象
问题描述
我有一个带有 Java 7 的桌面应用程序,用户可以在其中填写数据并使用文件选择器选择图片(仅 .jpg 格式)并将其插入 MS Access 数据库(.accdb)。应用管理员可以将上个月插入的所有数据导出为 .csv 文件,图片应以 .jpg 文件存储在文件夹中。
我连接到 MS Access 数据库并成功读写数据,但没有图片,所以问题是:
- 如何将 MS Access 中文件系统中的图片存储为 OLE 对象
- 如何从 OLE 对象列中导出图片到文件系统(作为 .jpg 文件)
解决方案
在 Java 中使用 OLE 与通过 Java 从 MS Access 数据库中获取 OLE 对象之间存在很大差异。
通常,MS Access 是通过适当的 ODBC 驱动程序(与 java 无关)访问的。而且 ODBC 不直接支持 OLE 对象。至少不是我记得的,也不是我能找到的。
因此,必须做的正是二进制中的 OLE,然后通过操纵它从中获得准确的信息。换句话说,提取的二进制文件包含图像和其他信息。在二进制数据成为实际图像之前,其他信息被删除。
以下提供了一些信息。
在尝试操作图像之前,您必须测试以下内容。1. 编写代码以从对象中提取图像。2. 将二进制数据写入文件。3. 使用适当的外部应用程序加载文件并确保格式正确。4. 对所有已知变体重复上述步骤 显示 OLE 对象
推荐阅读
- python - 带停止的 Numpy 条件检查
- python - 为什么我的 OpenCV 代码在 Ubuntu 18.04 上运行,但在 Raspbian 上的 Raspberry Pi 3 上运行不了?
- java - 包 androidx.databinding 不存在错误
- android - 访问 Twitter REST API 仅在 mainActivity 中有效,但为什么呢?
- javascript - 是否有任何选项可以使下方的图表(amcharts4)可以从两侧(左右)拖动?
- javascript - bootstrap 4.1.3下拉+正确+可滚动菜单=闪烁
- php - 插入数据未通过邮递员显示在我的数据库表中
- mysql - 图形光标不显示我的数据但正确绘制
- wpf - WPF DataGridTextColumn 直接编辑
- python - Python - 将 JSON 数据写入文件