다음 코드를 사용하여 테이블 메서드에 대한 호출을 동적으로 실행할 수 있습니다.DictTable CallObject
그러나 항상 오류 실행 코드를 반환합니다. myTableName 테이블에 'myUpdateMethod'메서드가 없습니다.
Dicttable dictTable;
Common common;
ExecutePermission perm;
perm = new ExecutePermission();
dictTable= new DictTable(tableName2Id('myTableName'));
if (dictTable != null)
{
common = dictTable.makeRecord();
// Grants permission to execute the
// DictTable.callObject method. DictTable.callObject runs
// under code access security.
perm.assert();
dictTable.callObject('myUpdateMethod', common);
}
// Close the code access permission scope.
CodeAccessPermission::revertAssert();
이 오브젝트들은 다른 모델이지만, 두 모델 사이에 차이가 있는지 확인하기 위해 시도했습니다. 문제를 해결하지 못했습니다.
감사합니다.
메소드 인수가 있습니까? callobject()에는 추가 매개 변수를 지정하지 않습니다. 따라서 매개 변수없이 myUpdateMethod()를 찾습니다. --- 조언한다 : 1. SysDictTable 대신 DICT 표 2. SysDictTable.isMethodActual() 객체의 이름에 대한 문자열을 사용하지 마십시오 방법 presense 3.을 확인하는 - 그것은 상호 참조를 잃게됩니다. tableName2Id ('myTableName') 대신 tablenum (myTablename)을 사용하고 대신 'myUpdateMethod'대신 methodstr (myUpdateMethod)을 사용하십시오. – mazzy