Partilhar via


Função JetGetRecordPosition

Aplica-se a: Windows | Windows Server

Função JetGetRecordPosition

A função JetGetRecordPosition retorna a posição fracionária do registro atual no índice atual na forma de uma estrutura JET_RECPOS . Essa estrutura descreve posições fracionárias em termos de um número aproximado de entradas de índice antes do registro atual e um número total aproximado de entradas no índice.

    JET_ERR JET_API JetGetRecordPosition(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __out         JET_RECPOS* precpos,
      __in          unsigned long cbRecpos
    );

Parâmetros

sesid

A sessão a ser usada para essa chamada.

Tableid

O cursor a ser usado para essa chamada.

precpos

A descrição da fração a ser usada para obter a posição do registro atual no índice atual.

cbRecpos

O tamanho da memória alocada em precpos.

Valor Retornado

Essa 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 do ESE, consulte Erros extensíveis do mecanismo de armazenamento e parâmetros de tratamento de erros.

Código de retorno

Descrição

JET_errSuccess

A operação foi concluída com sucesso.

JET_errNotInitialized

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

JET_errClientRequestToStopJetService

A operação não pode ser concluída porque todas as atividades na instância associada à sessão cessaram como resultado de uma chamada para JetStopService.

JET_errInstanceUnavailable

Essa operação não pode ser concluída porque a instância, associada à sessão, encontrou um erro fatal. É necessário que o acesso a todos os dados seja revogado para proteger a integridade desses dados.

Windows 2000: Esse erro não será retornado pelo sistema operacional Windows 2000.

JET_errInvalidParameter

O tamanho da memória alocada em precpos não é um tamanho suficiente.

JET_errNoCurrentRecord

O cursor não está atualmente em um registro e não pode retornar uma posição.

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.

Windows 2000: Esse erro não será retornado pelo sistema operacional Windows 2000.

JET_errTermInProgress

A operação não pode ser concluída porque a instância associada à sessão está sendo desligada.

Com êxito, o número aproximado de entradas de índice anteriores ao registro atual no índice é retornado em precpos-centriesLT>. 1 é retornado em precpos-centriesInRange>. O número aproximado de entradas no índice é retornado em precpos-centriesTotal>.

Em caso de falha, nenhuma alteração é feita na memória alocada em precpos.

Comentários

Essa operação retorna dados variados quando as atualizações ocorrem continuamente na tabela. As alterações nos valores nem sempre corresponderão às expectativas com base no conhecimento das atualizações, pois os valores são aproximações com base nas propriedades físicas do índice. O isolamento transacional não se aplica a posições de JetGetRecordPosition , pois os valores dependem de propriedades físicas do índice que não são isoladas de transação.

JET_RECPOS não deve ser usado para descrever um registro dentro de uma tabela ou reposicionar um registro próximo a um registro existente. Em vez disso, os indicadores de um registro existente devem ser recuperados e usados para reposicionar o mesmo registro.

Requisitos

Requisito Valor

Cliente

Requer Windows Vista, Windows XP ou Windows 2000 Professional.

Servidor

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

Cabeçalho

Declarado em Esent.h.

Biblioteca

Use ESENT.lib.

DLL

Requer ESENT.dll.

Consulte Também

JET_COLUMNID
JET_ERR
JET_SESID
JET_TABLEID
JET_RECPOS
JET_SETINFO
JetGotoPosition
JetStopService