0

我想通过检索每个标签的值将fix4.2消息持久化到数据库。我有修复消息的ExecutionReport对象。我正在使用exec.getString(1)检索帐户的标记值,并且该标记值不存在于消息中,因此它会引发 FieldNotFound 异常。在 Fiximate 中,我发现 account 不是必填字段。

我也尝试过exec.getAccount().getValue()但遇到了同样的异常。我发现所有这些方法都会引发 FieldNotFound 异常。

如果修复消息中不存在该非强制性字段,是否有任何方法可以将标记值检索为null 。

任何帮助将不胜感激。

提前致谢。

问候,沙达布

4

1 回答 1

1

您没有说您使用的是哪个 QuickFIX 端口(例如 C++ 的原始 QF、Java 的 QF/J、C# 的 QF/n)。

如果某个字段不是必需的,您只需先测试其是否存在。

C++: exec.isSetField(1)exec.isSetField(field)
(可能还有一个exec.isSetAccount(),不确定)

爪哇: exec.isSetField(1)exec.isSetAccount()exec.isSetField(field)

C#: exec.IsSet(1)exec.IsSetAccount()exec.IsSetField(field)

于 2012-12-14T16:09:54.110 回答