我有一个调用 PowerBuilder.NET(12.1 Build 7217) 程序集的 C# 程序集。PowerBuilder 源代码包含在下面,您可以看到它是一个相当简单的对字符串的真/假评估。
当 PB.NET 程序集被 C# 中的 Window 调用时,它返回“true”的预期结果。当 C# 程序集调用相同的代码时,该代码返回 "" 或空字符串。
我设法将问题缩小到 PB.NET 程序集中的 DataStore 交互。如果从另一个程序集调用 PB.NET 程序集,则 DataStore 始终有 0 行并且只包含空字符串。有没有人见过或处理过这个?
// Create instance of Datastore
ldsExpression = CREATE DataStore
// Set data object
ldsExpression.DataObject = "d_condition_expression"
//// Setting datawindow expression
lsExpression = 'condition_expression.expression = ~"' + asConditionExpression + '~"'
//// Apply Expression
lsError = ldsExpression.Modify(lsExpression)
IF len(lsError) = 0 THEN
ldsExpression.InsertRow(0)
//get the result
lsResult = ldsExpression.GetItemString(1,"condition_expression")
ELSE
lsResult = lsError
END IF
// Destroy instance of ldsExpression
DESTROY(ldsExpression)
RETURN lsResult