0

私は問題があります。グローバル内で、関数にパラメーターを渡す方法が見つかりません。

set ^SERIES(1)="Nombre de Serie#Humor#10#Do ResultadoSerie^KDAobjetos(respuesta)" ..... CargaMenu1 ; 新しい SQL、ステートメント、ステータス、resultSet、resultado、mensaje

Set Sql="select * from SQLUser.Series"

Set Statement=##class(%SQL.Statement).%New()
Set status=Statement.%Prepare(Sql)
If status=1
{       
    Set resultSet=Statement.%Execute()
    While resultSet.%Next()
    {
        Use 0 Write $J(resultSet.IdSeries,5)_".- "_resultSet.NombreSerie,!
    }
}
else 
{
    // No se ha podido ejecutar la consulta.
    set resultado=-1
    set mensaje=$$STATUSERROR^SPAHH000(status)
    Use 0 Write resultado_" : "_mensaje,!
}

// Condicion de salida
Use 0 Write !,$J(0,5)_".- Salir",!
W !,""

Quit 

CargaMenu2(respuesta) New objSerie,status set objSerie = ##class(User.Series).%OpenId(respuesta,,.status) If status = 1 {

    Xecute objSerie.XecuteCode(respuesta)

 }
else
{
    W !,""
    Use 0 write "Opción no disponible.",!   
    hang 2
}
Quit

ResultadoSerie(応答) ; set objSerie = ##class(User.Series).%OpenId(respuesta,,.status) W #,"La serie " objSerie.NombreSerie ", es de " objSerie.CategoriaSerie " y tiene " objSerie.TemporadasSerie " temporadas." W!!、「」ハング2

    Quit

最終結果:

<OBJECT DISPATCH>Function2+9^CargaMenu2 *Property 'XecuteCode' in class 'User.Serie' is not MultiDimensional
USER 3d1>
4

1 に答える 1

1

更新後でも、なぜこのようにする必要があるのか​​ はまだ説明されていません。データベースのどこかに保存されているコードをこのように実行するのはあまり良くありません。別の方法を見つけることをお勧めします。

とにかく、すべてのパラメーターを内部に含む正しい文字列を作成し、それを実行する必要があります。そしてドキュメンテーションを略奪します。より良い答えが見つかるかもしれません。

于 2020-12-15T15:39:31.207 に答える