我有一种方法可以从表MyConfiguration中检索配置详细信息。当前使用的代码是:
Query query;
QueryRun queryRun;
QueryBuildDataSource qbds;
MyConfiguration config;
int rowCount;
query = new Query();
qbds = query.addDataSource(tableNum(MyConfiguration));
queryRun = new QueryRun(query);
rowCount = SysQuery::countTotal(queryRun);
该表有 0 或 1 行;如果有配置设置或使用默认设置,则有一个if语句说明使用什么过程。
问题
尽管表中有一行,但查询间歇性地返回 0 行。
更新
感谢大卫的输入,我简化了代码:
MyConfiguration config;
select firstOnly useSettings, firstField, secondField from config;
// This wasn't included in the original example, but demonstrates how it's used.
if(config){
// These variables are defined in classDeclaration
useCustom = config.useSettings;
first = config.firstField;
second = config.secondField;
}
else
{
// No custom configuration, use defaults.
useCustom = 0;
}
此代码位于调用主要方法以查找要使用的配置时调用的方法中。
当我在开发环境中运行我的测试方法时,所有测试都通过了(正在为每个测试读取配置)。但是,当从按钮的单击事件调用主要方法时,选择不会返回任何内容(我已经在调试器中检查了这一点)。这会导致应用程序使用默认值而不是配置值运行。如果我手动,在调试器中,将执行移到如果第二个选择也不返回任何值。
测试和表单都以相同的方式执行方法,但从select语句中得到不同的结果。