如何在Access 2007数据库的表中存储XML数据

时间:2011-02-21 05:07:36

标签: ms-access

我希望将XML数据的内容插入到ScreenContent列中(比如表“Screen”)。列的数据类型是什么?我试过“文字”和“备忘录”。它只花了255个字符。

实际的XML数据大约是150000个字符。

数据样本是

INSERT INTO  ent_Screen (ItemId, [ScreenCode],[ScreenContent]) VALUES ('1','2','<svg xmlns="http://www.w3.org/2000/svg" xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" xmlns:xlink="http://www.w3.org/1999/xlink" class="st76" color-interpolation-filters="sRGB" contentScriptType="text/ecmascript" contentStyleType="text/css" height="11in" preserveAspectRatio="xMidYMid meet" version="1.0" viewBox="0 0 1224 792" width="17in" xml:space="preserve" zoomAndPan="disable"><style type="text/css" xml:space="preserve"><![CDATA[ .st1 {fill:#facca7;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.16} .st2 {fill:#edcdcb;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.16} .st3 {fill:#d1ebf1;stroke:#000000;stroke-linecap:round;stroke-linejoin:round;stroke-width:0.24} .st4 {marker-end:url(#mrkr4-16);stroke:#d9680d;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.16} .st5 {fill:#d9680d;fill-opacity:1;stroke:#d9680d;stroke-opacity:1;stroke- ............................................. </svg>)

我无法在Access DB中看到整个数据。

请告诉我如何打印数据。

谢谢你, 拉姆

1 个答案:

答案 0 :(得分:1)

由于有很多引号和/或各种字符,因此在Access sql中使用SQL insert语句会有一段艰难的时间(特别是因为实际上没有转义字符甚至是第三个分隔符)。

但是,如果你在代码中抓取并处理这些数据,我会考虑使用DAO和记录集。我相信sql语句限制在大约4000个字符,你说的是150,000。

所以我会使用DAO,例如:

  Dim rst        As DAO.Recordset

  Set rst = CurrentDb.OpenRecordset("ent_Screen")
  rst.AddNew
  rst!ItemId = 1
  rst!ScreenCode = 2
  rst!ScreenContent = strXML

  rst.Update
  rst.Close

因此,代码解决了分隔符的问题,并且它还解决了sql字符串长度限制问题。