当然,您需要创建一个表。您将把新的 Word 格式中的 XML 存储在 XML 列中,而不是一个 Character Large Object (CLOB) 中。为此,需要创建一个支持 XML 或 UTF-8 的数据库。
清单 1. 创建一个支持 XML 的数据库
CREATE DATABASE ODF AUTOMATIC STORAGE YES USING CODESET UTF-8 TERRITORY US
|
现在,需要连接到数据库,并用下面的定义创建一个表。下面的代码假设您有一个具有 CREATETAB 权限的用户名 “db2admin”。如果不具备这种用户设置,可以修改这些脚本,使具有适当的数据库用户。
清单 2. 创建用于包含 ODF 和 MS Office 2007 文档的支持 XML 的表
CREATE TABLE DB2ADMIN.DOCUMENT (
ID INT NOT NULL PRIMARY KEY,
OWNER VARCHAR(128),
DOC XML
)
|
代码将使用 PHP 的 ZIP 实用程序和 PDO。PDO 已经针对 Zend Core for IBM 设置完毕,但是需要将 “zip” 添加到配置中:
- 打开 Zend Core Administration Console。
- 切换到 Configuration 选项卡和 Extensions 子选项卡。
- 向下滚动到 ZIP 扩展。
- 单击 switch 图标将其打开。
- 单击 Save Settings。
- 重新启动 Apache2。
- 如果它不在运行,即在系统托盘中显示为红色羽毛,那么启动 C:\Program Files\Zend\Apache2\bin\ApacheMonitor.exe。
- 单击它,从菜单中重新启动 Apache2 HTTP Server。
如果这样不行,那么试着编辑文件,确保 “C:\Program Files\Zend\Core for IBM\etc” 文件夹下的 php.ini 文件中包含下面几行。将下面用粗体表示的一行添加到 php.ini 中:
清单 3. 对 php.ini 的修改
extension=php_zip.dll
extension=php_pdo.dll
extension=php_pdo_ibm.dll
extension_dir="c:\program files\Zend\Core for IBM\lib\phpext"
|
现在,可以开始使用 opendoc.odt 了,它是下载小节中提供的一个 ODF 文件。虽然 图 2 显示了该文档的 MS Word 外观,但这个 ODF 文件看起来类似于 清单 4。该文档使用像 “Heading 1” 和 “Heading 2” 这样的样式作为格式。然后,我们将查询 Heading 2 样式,因为 OpenOffice 格式中使用了它。注意,在生产代码中,还需要包括适当的错误处理代码。
我还在下载小节中包括了一个 submit.docx 文档,该文档使用 MS Office 2007 格式。图 2 显示这个文档在 Word 中的样子。和 ODF 一样,该文档利用 “Heading 1” 和 “Heading 2” 之类的 Word 样式作为格式。然后,我们将查询 Heading 2 样式。
图 2. OpenOffice 或 MS Word 中显示的示例文档

当然,您需要创建一个表。您将把新的 Word 格式中的 XML 存储在 XML 列中,而不是一个 Character Large Object (CLOB) 中。为此,需要创建一个支持 XML 或 UTF-8 的数据库。
清单 1. 创建一个支持 XML 的数据库
CREATE DATABASE ODF AUTOMATIC STORAGE YES USING CODESET UTF-8 TERRITORY US
|
现在,需要连接到数据库,并用下面的定义创建一个表。下面的代码假设您有一个具有 CREATETAB 权限的用户名 “db2admin”。如果不具备这种用户设置,可以修改这些脚本,使具有适当的数据库用户。
清单 2. 创建用于包含 ODF 和 MS Office 2007 文档的支持 XML 的表
CREATE TABLE DB2ADMIN.DOCUMENT (
ID INT NOT NULL PRIMARY KEY,
OWNER VARCHAR(128),
DOC XML
)
|
代码将使用 PHP 的 ZIP 实用程序和 PDO。PDO 已经针对 Zend Core for IBM 设置完毕,但是需要将 “zip” 添加到配置中:
- 打开 Zend Core Administration Console。
- 切换到 Configuration 选项卡和 Extensions 子选项卡。
- 向下滚动到 ZIP 扩展。
- 单击 switch 图标将其打开。
- 单击 Save Settings。
- 重新启动 Apache2。
- 如果它不在运行,即在系统托盘中显示为红色羽毛,那么启动 C:\Program Files\Zend\Apache2\bin\ApacheMonitor.exe。
- 单击它,从菜单中重新启动 Apache2 HTTP Server。
如果这样不行,那么试着编辑文件,确保 “C:\Program Files\Zend\Core for IBM\etc” 文件夹下的 php.ini 文件中包含下面几行。将下面用粗体表示的一行添加到 php.ini 中:
清单 3. 对 php.ini 的修改
extension=php_zip.dll
extension=php_pdo.dll
extension=php_pdo_ibm.dll
extension_dir="c:\program files\Zend\Core for IBM\lib\phpext"
|
现在,可以开始使用 opendoc.odt 了,它是下载小节中提供的一个 ODF 文件。虽然 图 2 显示了该文档的 MS Word 外观,但这个 ODF 文件看起来类似于 清单 4。该文档使用像 “Heading 1” 和 “Heading 2” 这样的样式作为格式。然后,我们将查询 Heading 2 样式,因为 OpenOffice 格式中使用了它。注意,在生产代码中,还需要包括适当的错误处理代码。
我还在下载小节中包括了一个 submit.docx 文档,该文档使用 MS Office 2007 格式。图 2 显示这个文档在 Word 中的样子。和 ODF 一样,该文档利用 “Heading 1” 和 “Heading 2” 之类的 Word 样式作为格式。然后,我们将查询 Heading 2 样式。