第十三章 使用动态SQL(六)
用%ObjectSelectMode = 1 Swizzling字段名称属性
下面的示例使用%ObjectSelectMode = 1进行准备,当使用字段名称属性返回值时,其类型类别为可Swizzle类型的字段(持久性类,序列类或流类)将自动发生Swizzle。转换字段值的结果是相应的对象参考(oref)。使用%Get()或%GetData()方法访问字段时,InterSystems IRIS不会执行此筛选操作。在此示例中,rset.Home处于Swizzle状态,而引用同一字段的rset.%GetData(2)处于not swizzled状态:
/// d ##class(PHA.TEST.SQL).PropSQL2()
ClassMethod PropSQL2()
{
SET myquery = "SELECT TOP 5 Name,Home FROM Sample.Person"
SET tStatement = ##class(%SQL.Statement).%New(0)
SET tStatement.%ObjectSelectMode=1
WRITE !,"set ObjectSelectMode=",tStatement.%ObjectSelectMode,!
SET qStatus = tStatement.
