【发布时间】:2015-10-28 20:16:45
【问题描述】:
虽然问题标题本身是完整的,但我将提供一些关于我如何解决此问题的元信息。
使用 SQL Server 和 MySQL,它对任何类型和任何大小的数据都很好,但最近我开始使用 DBMS,它在表的每一列中最多只允许 64 KB 的数据。当列中有二进制数据时,64 KB 的限制是有问题的。其他示例包括 - 包含图像或音频或多媒体对象或地理空间数据的列。
您不会总是获得小于 64 KB 的图像。 BLOB 不能简单地存储在此类 DBMS 中。 DBMS 允许用户通过用 C/C++ 编写函数并调用它们来增加其功能。但即使使用这些函数,我们每次调用最多也可以返回 64 KB 的数据。
有人建议我一个解决方法 -
将二进制数据存储在文件系统上并为其存储标识符 表列中的特定二进制数据。这样,当任何人 请求该数据,数据可以在块中发送回调用者 每个大小为 64 KB。
但随后出现了第二个限制,即数据只能作为以下数据类型之一从 DBMS 发送 - char / varchar / integer / smallint / bigint / boolean / real。此列表中最受青睐的候选者是 varchar(max),原因很明显(它是最长的)。
那么,可以读取二进制文件并将其作为文本发送吗? 与 DBMS 对话的客户端正在用 C# 开发。
【问题讨论】:
标签: c# varchar binary-data