COMPROP( ) (Función)
Establece o devuelve la configuración de comportamiento de una propiedad de objeto COM.
COMPROP(oCOMObject, cProperty [, eValue])
Devuelve
Valor de cProperty.
Parámetros
oComObject
Especifica una referencia a un objeto COM.cProperty
Especifica el nombre de la propiedad COM que se va a establecer. Vea en la tabla siguiente los valores posibles de cProperty:cProperty Descripción UTF8 Determina si las cadenas UNICODE devueltas de un objeto COM se convierten a ANSI. La conversión se realiza de forma predeterminada. PUTREF Determina si la asignación de objeto inicial es PROPERTY_PUT (valor predeterminado) o PROPERTY_PUTREF. eValue
Especifica el valor que se aplicará a cProperty. Utilice 0 para especificar el comportamiento predeterminado y 1 para utilizar un comportamiento no predeterminado a partir de la descripción en la tabla cProperty.
Observaciones
Debe utilizar el nombre completo del objeto COM. Si no se proporciona eValue, COMPROP( ) devuelve el valor de cProperty. cProperty no distingue entre mayúsculas y minúsculas.
Si se fija un valor eValue de 1 para UTF8, se evita que los caracteres de múltiples bytes aparezcan como signos de interrogación.
Si se fija un valor eValue de 1 para PUTREF, Visual FoxPro intentará una asignación de objeto como PROPERTY_PUTREF primero y, sólo en caso de que falle, intentará la asignación como PROPERTY_PUT. Las asignaciones de objeto a propiedades de algunos controles ActiveX u objetos COM requiere PROPERTY_PUTREF, y el valor predeterminado de Visual FoxPro será PROPERTY_PUT.
Ejemplos
El ejemplo siguiente devuelve datos desde métodos de un conjunto de registros ADO en formato UNICODE, en lugar de permitir la conversión a ANSI:
LOCAL oConn AS adodb.Connection, oRS AS adodb.Recordset
LOCAL lcStr AS STRING
oConn=CREATEOBJECT("ADODB.Connection")
oConn.Open("DSN=Nwind;") && DSN to SQL Server
oRS=oConn.Execute("select * from customers")
COMPROP(oRS,'UTF8',1)
DO WHILE NOT oRS.Eof
lcStr = oRS.Fields(4).Value
oRS.MoveNext
ENDDO
oRS.Close()
oRS.ActiveConnection=NULL
oRS=NULL
oConn.Close()
oConn=NULL
En el ejemplo siguiente, se indica a un control ActiveX que utilice PROPERTY_PUTREF en lugar de PROPERTY_PUT:
=COMPROP(oForm.OLECONTROL1, 'PROPERTY_PUTREF',1)