在数据库中存储HTML文件时可以使用哪种数据类型?

7

我想将一个包含图片和其他内容的网页存储在Sql Server中。我应该使用哪种数据类型?正如这里所提到的,未来版本的SQL Server将删除ntext、text和image数据类型。什么数据类型可以用于存储具有不同内容(如图片和JavaScript代码)的HTML文件?


2
一般来说,如果您想以文本格式存储,则使用 nvarchar(MAX),如果您想以二进制格式存储,则使用 varbinary(MAX) - 这些是 ntextimage 的官方“继承者”。您打算如何包含这些图像?它们作为数据URL嵌入还是您还需要将它们单独存储在数据库中? - Heinzi
@Heinzi 是的,这也是我的问题。我不知道如果我使用 nvarchar(max),图像是否可以被存储,并且它们是否可以被正确检索。 - Green Falcon
1
所以,如果我理解你的意思正确的话,你实际上想要保存的不是一个html文件,而是一个由html文件加上一些图片组成的网页,对吗?如果是这样的话,你考虑过只将其存储在文件系统中,并仅在数据库中存储路径吗? - Heinzi
3
两种方法都没错,各有优缺点(例如请见这个讨论)。如果你决定将它们存储在数据库中,nvarchar(MAX)用于HTML文本,varbinary(MAX)用于图片是适当的数据类型。 - Heinzi
那么我应该储存它们吗? - Green Falcon
显示剩余5条评论
2个回答

8

由于您想同时存储网页的HTML和图片,您可能需要考虑将图片存储在文件系统中。以下是两种选项的优缺点比较:


如果你决定将它们存储在数据库中,合适的数据类型是:

  • nvarchar (MAX) 用于HTML文本,以及
  • varbinary (MAX) 用于图片。

2

我可以使用 nvarchar(MAX) 将它们存储在数据库中。这样既可以存储数据,也可以检索带有图像的数据。

我的目标是复制并粘贴收到的电子邮件。这些电子邮件可能包含HTML标签和图片。我尝试使用 nvarchar(max) 进行操作,并且它成功了。

我正在使用VB6作为开发工具。我唯一遇到的问题是无法通过addParameter将值传递给存储过程进行存储。

我已经使用VB6的传统保存机制进行了存储。

With Recordset<br>
 .addnewM<br>
 .Fields("MailBody")<br>
 .Update<br>
End With<br>

如果有人想使用存储过程进行存储,请告诉我。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接