Função JetGetBookmark

Aplica-se a: Windows | Windows Server

Função JetGetBookmark

A função JetGetBookmark recupera o indicador para o registro que está associado à entrada de índice na posição atual de um cursor. Esse indicador pode então ser usado para reposicionar esse cursor de volta para o mesmo registro usando JetGoToBookmark.

    JET_ERR JET_API JetGetBookmark(
      __in          JET_SESID sesid,
      __in          JET_TABLEID tableid,
      __out_opt     void* pvBookmark,
      __in          unsigned long cbMax,
      __out_opt     unsigned long* pcbActual
    );

Parâmetros

sesid

A sessão a ser usada para esta chamada.

TableID

O cursor a ser usado para esta chamada.

pvBookmark

O buffer de saída que recebe o indicador.

cbMax

O tamanho máximo, em bytes, do buffer de saída.

pcbActual

O tamanho real, em bytes, do indicador.

Se esse parâmetro for nulo , o tamanho real do indicador não será retornado.

Se o buffer de saída for muito pequeno, o tamanho real do indicador ainda será retornado. Isso significa que esse número será maior do que o tamanho do buffer de saída.

Valor Retornado

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

Código de retorno

Descrição

JET_errSuccess

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

JET_errBufferTooSmall

A operação foi concluída com êxito, mas o buffer de saída era muito pequeno para receber o indicador inteiro. O buffer de saída foi preenchido com a maior parte do indicador que couber. O tamanho real do indicador também foi retornado, se solicitado.

JET_errClientRequestToStopJetService

A operação não pode ser concluída porque toda a atividade da instância associada à sessão foi interrompida como resultado de uma chamada para JetStopService.

JET_errInstanceUnavailable

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

Windows XP: Esses valores de retorno são apresentados no Windows XP.

JET_errNoCurrentRecord

O cursor não está posicionado em um registro. Isso pode ocorrer por vários motivos diferentes. Por exemplo, isso ocorrerá se o cursor estiver posicionado após o último registro no índice atual.

JET_errNotInitialized

A operação não pode ser concluída porque a instância associada à sessão ainda não foi inicializada.

JET_errRestoreInProgress

A operação não pode ser concluída 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 XP: Esse valor de retorno é introduzido no Windows XP.

JET_errTermInProgress

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

Se essa função for realizada com sucesso, o indicador do registro associado à entrada de índice na posição atual de um cursor será retornado no buffer de saída. Nenhuma alteração no estado do banco de dados ocorrerá.

Se essa função falhar, o estado do buffer de saída e o tamanho real do indicador serão indefinidos, a menos que JET_errBufferTooSmall seja retornado. No caso em que JET_errBufferTooSmall for retornado, o buffer de saída conterá a maior parte do indicador que se ajustará no espaço fornecido e o tamanho real do indicador será preciso. Nenhuma alteração no estado do banco de dados ocorrerá.

Comentários

Os indicadores geralmente devem ser tratados como partes opacas de dados. Nenhuma tentativa deve ser feita para explorar a estrutura interna desses dados. No entanto, as seguintes condições são verdadeiras de todos os indicadores de ESENT:

  • Um indicador identifica exclusivamente um registro em uma determinada tabela.

  • O indicador de um registro não será alterado durante o tempo de vida desse registro.

  • O indicador de um registro é o mesmo que a chave desse registro no índice primário na tabela que contém esse registro. Se nenhum índice primário for definido nessa tabela, o mecanismo de banco de dados criará seu próprio indicador para o registro.

  • Os indicadores podem ser comparados entre si usando a função memcmp para estabelecer sua ordenação relativa no índice primário na tabela dos registros de origem. Se nenhum índice primário for definido nessa tabela, não será significativo usar a ordenação relativa de indicadores dessa tabela.

  • Não há sentido comparar indicadores de registros de tabelas diferentes entre si.

  • Um indicador é sempre menor ou igual a JET_cbBookmarkMost (256) bytes de comprimento, antes do Windows Vista.

Windows Vista: No Windows Vista e versões posteriores, os indicadores podem ser maiores que JET_cbBookmarkMost (256) bytes. O tamanho máximo de um indicador é igual ao valor atual de JET_paramKeyMost + 1.

Requisitos

Cliente

Requer o Windows Vista, o Windows XP ou o 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_ERR
JET_SESID
JET_TABLEID
JetGoToBookmark
JetStopService
memcmp