如何使用Microsoft Access显示MySQL服务器中的图像

如何使用Microsoft Access显示MySQL服务器中的图像,mysql,vba,ms-access,Mysql,Vba,Ms Access,我正在使用MS Access可视化MySQL数据库中的数据。来自MySQL的数据包含一些图像,这些图像应该在MS Access中以连续形式显示。MySQL数据库中的图像存储在BLOB字段中 我通过ODBC驱动程序在MS Access中链接了MySQL表,我能够看到MS Access表中的数据,但是显示图像不是一件容易的任务 我看到了这一点,它对单个表单非常有效,但据我所知,它不能用于连续表单: DBPiX(www.ammara.com) AccessImagine() 还有一些vba代码片段

我正在使用MS Access可视化MySQL数据库中的数据。来自MySQL的数据包含一些图像,这些图像应该在MS Access中以连续形式显示。MySQL数据库中的图像存储在BLOB字段中

我通过ODBC驱动程序在MS Access中链接了MySQL表,我能够看到MS Access表中的数据,但是显示图像不是一件容易的任务

我看到了这一点,它对单个表单非常有效,但据我所知,它不能用于连续表单:

  • DBPiX(www.ammara.com)
  • AccessImagine()
还有一些vba代码片段,它们将BLOB转储到临时文件,然后表单引用文件路径:

我对这个解决方案不是很满意,因为图像的总大小约为500 MB,可能每次都会下载和存储

有人知道显示这些图像的好方法吗

编辑: 我刚刚意识到,如果通过MS Access的导入功能将图像(.bmp)插入到链接表中,它们可以以一种形式显示。因此,从MS Access创建的生成的二进制文件一定与我的图像不同,我正在用python将图像上载到MySQL数据库,但我不知道如何


非常感谢您的支持

MS Access是一个客户端数据库。这意味着,每次运行查询时,它都会通过管道将所有数据拉至本地PC,执行必要的操作,然后(如果需要)将数据推回服务器

通过管道拉取大量数据将导致应用程序死机。Access处理您所描述的文件的唯一方法是,它包含一个数据类型为“附件”的字段。不能使用链接表执行此操作

最有效的方法是使用VarChar/Text字段和图像的网络路径。然后,您可以根据所述图像的路径将图像带入您的表单中。如果您真的非常想使用嵌入式映像,那么需要一个带有数据类型“Attachment”字段的表,以及某种类型的键来将其绑定到链接的MySQL表中

请查看此处以了解更多信息:

最后,我将这些图像上传到谷歌硬盘,而不是将它们作为blob存储在数据库中。
然后,可以使用相对文件夹路径轻松地引用图像

您意识到每次运行查询时都会通过网络发送500MB的图像,对吗?你为什么不能只存储图像的网络路径?@Mat'sMug你能告诉我如何实现吗!?我不托管MySQL服务器。因此,我必须使用ftp或ssh将图像存储在服务器上的某个位置,并且只将路径存储在MySQL数据库中,而不是BLOB!?谢谢你的回复。我将尝试网络路径选项!我还要补充一点,在任何系统中,如果你拉动10行,那么所有10行都会到达客户端。该客户端可以是C++、VB.NET、C++或任何开发系统。事实上,即使在处理web服务器时,web服务器也总是为给定的SQL提取请求的行。但是,即使在access客户机的情况下,您也会从100万行表中请求10行,然后只提取10行。你拉的行数与使用C++、VB.NET、C语言或在这种情况下访问的软件没有什么不同。如果你不理解Access是如何工作的,我很抱歉,艾伯特。如果你有一个链接表,你在Access中运行一个查询,它肯定会把整个数据集拖过管道。我现在得到两个完全不同的答案。为了找出谁是对的,我做了一个小实验。我安装了glasswire来监控我的网络流量,然后我启动了MS Access。从数据库中打开链接表时,会立即下载大约0,1 MB。我在表中看到225个条目,如果我向下滚动到列表的末尾,其余的条目将被加载,这给了我另外225个条目和~0,1MB的下载使用量。可以重复此过程,直到加载所有行。当我打开我的连续表单时,同样的事情再次发生。