1

PowerBuilder.NET(12.1 Build 7217) アセンブリを呼び出す C# アセンブリがあります。PowerBuilder のソース コードを以下に示します。文字列の単純な true/false 評価であることがわかります。

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
4

2 に答える 2