2

我正在用 C++ 编写一个应用程序,它使用他们的 I/O DLL 与 SPSS 15 交互。

我们的 SPSS 数据库由多个案例组成,每个案例都有其唯一的“ID”字段。

我需要做的是以读/写方式打开数据库,找到具有匹配ID的案例并根据我的程序解析的CSV文件修改一些变量。

从一开始就有两个明显的案例:

  • 匹配的案例不存在(在这种情况下,我可以轻松地使用 spssOpenAppend() 添加案例。

  • 匹配案例存在。(这是有问题的情况)

在后者中,我需要使用 spssOpenWriteCopy() 来获取写入句柄,并使用 spssOpenRead() 来获取读取句柄。虽然我对此不太感兴趣,但似乎这是使用他们的 DLL 完成此操作的唯一方法。问题是我无法在写入文件上移动 case 指针(显然,移动 case 指针是只读操作)

这意味着我一直试图弄清楚如何修改案例,而不必逐个遍历所有文件并复制所有数据,直到找到我感兴趣的案例。

我想补充一点,升级 SPSS 不是一种选择。

我还想避免手动逐个迭代并从头开始构建一个新文件。

4

1 回答 1

1

我想现在已经解决了,没有人会打扰回答。

无论如何,不​​可能在数据库中间插入一个案例。您可能会围绕 API 编写包装器来模拟它,但是如果不手动迭代每个案例并复制它,就无法做我想做的事情。

于 2011-07-04T04:03:00.993 回答