Partilhar via


Função JetSetColumns

Aplica-se a: Windows | Windows Server

Função JetSetColumns

A função JetSetColumns é semelhante em comportamento a JetSetColumn, mas permite que um aplicativo defina vários valores de coluna em uma única operação. Uma matriz de estruturas JET_SETCOLUMN é usada para descrever o conjunto de valores de coluna a serem definidos e para descrever buffers de entrada para cada valor de coluna a ser definido.

    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

Sesídeo

A sessão a ser usada para esta chamada.

TableID

O cursor a ser usado para esta chamada.

psetcolumn

Um ponteiro para uma matriz de uma ou mais estruturas JET_SETCOLUMN . Cada estrutura inclui descrições de qual valor de coluna definir e de onde obter dados de coluna para definir.

csetcolumn

O número de estruturas JET_SETCOLUMN na matriz dado por psetcolumn.

Valor de retorno

Esta função retorna o tipo de dados JET_ERR com um dos seguintes códigos de retorno. Para obter mais informações sobre os possíveis erros ESE, consulte Erros do mecanismo de armazenamento extensível e Parâmetros de tratamento de erros.

Código de retorno

Descrição

JET_errBadColumnId

O ID da coluna fornecido está fora dos limites legais de um ID de coluna.

JET_errClientRequestToStopJetService

Não é possível concluir a operação porque toda a atividade na instância associada à sessão cessou como resultado de uma chamada para JetStopService.

JET_errColumnIllegalNull

O mesmo que JET_errNullInvalid.

JET_errColumnNotFound

A coluna descrita pelo columnid dado não existe na tabela.

JET_errColumnNotUpdatable

Foi feita uma tentativa ilegal de atualizar um valor longo durante uma operação de atualização original de exclusão de cópia inserida.

JET_errColumnTooBig

Os dados de valor de coluna fornecidos no buffer de entrada excedem a limitação de tamanho natural para uma coluna de comprimento fixo ou configurada para texto de comprimento fixo ou colunas binárias. Este erro também é retornado ao passar mais de 1024 bytes de dados para uma coluna longa e definir o sinalizador JET_bitSetIntrinsicLV.

JET_errInstanceUnavailable

Não é possível concluir a operação porque a instância associada à sessão encontrou um erro fatal que exige que o acesso a todos os dados seja revogado para proteger a integridade desses dados. Este erro só será devolvido pelo Windows XP e versões posteriores.

JET_errInvalidBufferSize

O tamanho dos dados do valor da coluna não corresponde ao que é natural para o tipo de dados de comprimento fixo.

JET_errInvalidColumnType

Foi feita uma tentativa ilegal de atualizar uma coluna de incremento automático durante uma operação de inserção ou atualização, ou de atualizar uma coluna de versão durante uma operação de substituição.

JET_errInvalidgrbit

As opções fornecidas são desconhecidas ou uma combinação ilegal de configurações de bits conhecidas.

JET_errInvalidParameter

O dado psetinfo-cbStruct> não é um tamanho válido para a estrutura JET_SETINFO .

JET_errMultiValuedDuplicate

A operação set column tentou criar um valor duplicado e especificou JET_bitSetUniqueMultiValues ou JET_bitSetUniqueNormalizedMultiValues.

JET_errNotInitialized

Não é possível concluir a operação porque a instância associada à sessão ainda não foi inicializada.

JET_errNotInTransaction

Foi feita uma tentativa ilegal de atualizar um valor de coluna longa quando a sessão de chamada não estava em uma transação.

JET_errNullInvalid

Foi feita uma tentativa ilegal para definir uma coluna não-NULL como NULL.

JET_errRecordTooBig

O valor da coluna não pôde ser definido como o valor no buffer de entrada porque isso teria feito com que o registro excedesse sua limitação de tamanho relacionada ao tamanho da página. As colunas do tipo JET_coltypLongText ou JET_coltypLongBinary podem ser armazenadas separadamente dos restantes dados de registo. No entanto, outras colunas devem ser armazenadas com o registro e podem fazer com que a limitação de tamanho do registro seja excedida. Mesmo colunas longas exigem 5 bytes de espaço dentro do registro como uma ligação e isso também pode levar a JET_errRecordTooBig serem retornadas.

JET_errRestoreInProgress

Não é possível concluir a operação porque uma operação de restauração está em andamento na instância associada à sessão.

JET_errSessionSharingViolation

A mesma sessão não pode ser usada para mais de um thread ao mesmo tempo. Este erro só será devolvido pelo Windows XP e versões posteriores.

JET_errTermInProgress

Não é possível concluir a operação porque a instância associada à sessão está sendo encerrada.

JET_errUpdateNotPrepared

O cursor não está atualmente no processo de inserção de um novo registro ou atualização de um registro existente.

JET_wrnColumnMaxTruncated

O valor da coluna no buffer de entrada excedeu o comprimento máximo configurado para uma coluna de comprimento variável e foi truncado.

No sucesso, para cada coluna descrita nas psetcolumns, a parte desejada do valor da coluna é definida com dados copiados do buffer de entrada. O conjunto de dados da coluna pode ter sido truncado se excedeu o comprimento máximo especificado para uma coluna de comprimento variável.

Em caso de falha, o local do cursor é deixado inalterado e nenhum dado de valor de coluna é atualizado no buffer de cópia.

Observações

Se qualquer operação de coluna de conjunto individual retornar um erro, toda a operação JetSetColumns retornará um erro. Avisos, em geral, são retornados no psetcolumns-error> e não no código de retorno desta função. No entanto, se o último conjunto de colunas tiver um aviso, esse aviso será retornado do próprio JetSetColumns .

Requerimentos

Requisito Valor

Cliente

Requer Windows Vista, Windows XP ou Windows 2000 Professional.

Servidor

Requer Windows Server 2008, Windows Server 2003 ou Windows 2000 Server.

Cabeçalho

Declarado em Esent.h.

Biblioteca

Use ESENT.lib.

DLL

Requer ESENT.dll.

Ver também

JET_COLTYP
JET_ERR
JET_SESID
JET_TABLEID
JET_SETCOLUMN
JetRetrieveColumns
JetSetColumn