Función JetSetColumns

Se aplica a: Windows | Windows Server

Función JetSetColumns

La función JetSetColumns es similar en comportamiento a JetSetColumn, pero permite que una aplicación establezca varios valores de columna en una sola operación. Se usa una matriz de estructuras de JET_SETCOLUMN para describir el conjunto de valores de columna que se van a establecer y para describir los búferes de entrada para cada valor de columna que se va a establecer.

    JET_ERR JET_API JetSetColumns(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __in_out_opt  JET_SETCOLUMN* psetcolumn,
      __in          unsigned long csetcolumn
    );

Parámetros

sesid

La sesión que se va a usar para esta llamada.

tableid

Cursor que se va a usar para esta llamada.

psetcolumn

Puntero a una matriz de una o varias estructuras de JET_SETCOLUMN . Cada estructura incluye descripciones del valor de columna que se va a establecer y desde dónde obtener los datos de columna que se van a establecer.

csetcolumn

Número de estructuras de JET_SETCOLUMN en la matriz dada por psetcolumn.

Valor devuelto

Esta función devuelve el JET_ERR tipo de datos con uno de los siguientes códigos de retorno. Para obtener más información sobre los posibles errores de ESE, vea Extensible Storage Engine Errors and Error Handling Parameters.

Código devuelto

Descripción

JET_errBadColumnId

El identificador de columna especificado está fuera de los límites legales de un identificador de columna.

JET_errClientRequestToStopJetService

No es posible completar la operación porque toda la actividad de la instancia asociada a la sesión ha dejado de funcionar como resultado de una llamada a JetStopService.

JET_errColumnIllegalNull

Igual que JET_errNullInvalid.

JET_errColumnNotFound

La columna descrita por el columnid especificado no existe en la tabla.

JET_errColumnNotUpdatable

Se intentó actualizar un valor largo durante una operación de actualización original de la eliminación de copia de inserción.

JET_errColumnTooBig

Los datos de valor de columna especificados en el búfer de entrada superan la limitación de tamaño natural para una columna de longitud fija o configurada para columnas binarias o texto de longitud fija. Este error también se devuelve al pasar más de 1024 bytes de datos para una columna larga y establecer la marca de JET_bitSetIntrinsicLV.

JET_errInstanceUnavailable

No es posible completar la operación porque la instancia asociada a la sesión ha encontrado un error irrecuperable que requiere que se revoque el acceso a todos los datos para proteger la integridad de esos datos. Este error solo lo devolverá Windows XP y versiones posteriores.

JET_errInvalidBufferSize

El tamaño de datos del valor de columna especificado no coincide con lo que es natural para el tipo de datos de longitud fija.

JET_errInvalidColumnType

Se intentó actualizar una columna de incremento automático durante una operación de inserción o actualización, o para actualizar una columna de versión durante una operación de reemplazo.

JET_errInvalidgrbit

Las opciones proporcionadas son desconocidas o una combinación ilegal de la configuración de bits conocida.

JET_errInvalidParameter

La estructura psetinfo-cbStruct> especificada no es un tamaño válido para la estructura de JET_SETINFO .

JET_errMultiValuedDuplicate

La operación establecer columna intentó crear un valor duplicado y especificó JET_bitSetUniqueMultiValues o JET_bitSetUniqueNormalizedMultiValues.

JET_errNotInitialized

No es posible completar la operación porque la instancia asociada a la sesión aún no se ha inicializado.

JET_errNotInTransaction

Se intentó actualizar un valor de columna largo cuando la sesión de llamada no estaba en una transacción.

JET_errNullInvalid

Se intentó establecer una columna que no es NULL en NULL.

JET_errRecordTooBig

No se pudo establecer el valor de la columna en el valor del búfer de entrada porque habría provocado que el registro superara su limitación de tamaño de página relacionada. Las columnas de tipo JET_coltypLongText o JET_coltypLongBinary se pueden almacenar por separado de los datos de registro restantes. Sin embargo, otras columnas deben almacenarse con el registro y pueden hacer que se supere la limitación del tamaño del registro. Incluso las columnas largas requieren 5 bytes de espacio dentro del registro como una vinculación y esto también puede provocar que se devuelva JET_errRecordTooBig.

JET_errRestoreInProgress

No es posible completar la operación porque una operación de restauración está en curso en la instancia asociada a la sesión.

JET_errSessionSharingViolation

No se puede usar la misma sesión para más de un subproceso al mismo tiempo. Este error solo lo devolverá Windows XP y versiones posteriores.

JET_errTermInProgress

No es posible completar la operación porque la instancia asociada a la sesión se está cerrando.

JET_errUpdateNotPrepared

El cursor no está actualmente en proceso de insertar un nuevo registro o actualizar un registro existente.

JET_wrnColumnMaxTruncated

El valor de columna del búfer de entrada superó la longitud máxima configurada para una columna de longitud variable y se truncaba.

Si se ejecuta correctamente, para cada columna descrita en psetcolumns, la parte deseada del valor de columna se establece con los datos copiados del búfer de entrada. Es posible que el conjunto de datos de columna se haya truncado si superó la longitud máxima especificada para una columna de longitud variable.

Si se produce un error, la ubicación del cursor se deja sin cambios y no se actualiza ningún dato de valor de columna en el búfer de copia.

Observaciones

Si alguna operación de columna de conjunto individual devuelve un error, toda la operación JetSetColumns devolverá un error. Las advertencias, en general, se devuelven en el error psetcolumns y> no en el código devuelto de esta función. Sin embargo, si el último conjunto de columnas tiene una advertencia, esta advertencia se devolverá de JetSetColumns .

Requisitos

Requisito Value

Cliente

Requiere Windows Vista, Windows XP o Windows 2000 Professional.

Servidor

Requiere Windows Server 2008, Windows Server 2003 o Windows 2000 Server.

Encabezado

Declarado en Esent.h.

Library

Use ESENT.lib.

Archivo DLL

Requiere ESENT.dll.

Consulte también

JET_COLTYP
JET_ERR
JET_SESID
JET_TABLEID
JET_SETCOLUMN
JetRetrieveColumns
JetSetColumn