我们在 SUP 对象 API 项目中使用 SUPQuery 函数 intersect 时遇到问题。这两个查询由他们自己执行得很好。他们甚至正在使用 union/unionAll 函数。但是当试图将两者相交时,会发生异常:
SUPPersistenceException: -131 (ERROR) %1:intersect
查看错误常量 SYNTAX_ERROR,查询格式错误(即使它们一个接一个地工作正常并且在一个联合中......)。
这是我正在尝试做的事情:
SUPQuery * query1 = [SUPQuery getInstance];
query1 = [query1 select:@"t.*"];
query1 = [query1 from:@"X_MBO":@"t"];
SUPCompositeTest * innerCompTest1 = [SUPCompositeTest getInstance];
[innerCompTest1 add:[SUPAttributeTest contains:@"t.CUSTOMER":@"C1"]];
[query1 setTestCriteria:(SUPTestCriteria *)innerCompTest1];
SUPQueryResultSet * oList1 = [myDB executeQuery:query1];
NSLog(@"oList1: %@",oList1);
SUPQuery * query2 = [SUPQuery getInstance];
query2 = [query2 select:@"QT.*"];
query2 = [query2 from:@"Y_MBO":@"QT"];
SUPCompositeTest * innerCompTest2 = [SUPCompositeTest getInstance];
[innerCompTest2 add:[SUPAttributeTest contains:@"QT.CUSTOMER":@"C1"]];
[query2 setTestCriteria:(SUPTestCriteria *)innerCompTest2];
SUPQueryResultSet * oList2 = [myDB executeQuery:query2];
NSLog(@"oList2: %@",oList2);
//Query1 & Query2 both are returning a record each
SUPQuery *query3;
if (!oList1 && oList2) {
query3 = query2;
}
else if (oList1 && !oList2) {
query3 = query1;
}
else {
query3 = (SUPQuery*)[query2 intersect:query1];
}
执行错误 131 下面的行时发生。
SUPQueryResultSet * oList3 = [myDB executeQuery:query3];