Função JetDupCursor
Aplica-se a: Windows | Windows Server
Função JetDupCursor
A função JetDupCursor duplica um cursor aberto e retorna um identificador para o cursor duplicado. Se o cursor duplicado for um cursor somente leitura, o cursor duplicado também será um cursor somente leitura. Qualquer estado relacionado à construção de uma chave de pesquisa ou à atualização de um registro não é copiado para o cursor duplicado. Além disso, o local do cursor original não é duplicado no cursor duplicado. O cursor duplicado sempre é aberto no índice clusterizado e sua localização está sempre na primeira linha da tabela.
JET_ERR JET_API JetDupCursor(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out JET_TABLEID* ptableid,
__in JET_GRBIT grbit
);
Parâmetros
sesid
A sessão a ser usada para essa chamada.
Tableid
O cursor a ser usado para essa chamada.
Ptableid
Ponteiro para tableid.
grbit
Reservado para uso futuro.
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_errClientRequestToStopJetService |
Não é possível concluir a operação porque todas as atividades na instância associada à sessão cessaram como resultado de uma chamada para JetStopService. |
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. Esse erro só será retornado pelo Windows XP e versões posteriores. |
JET_errNotInitialized |
Não é possível concluir a operação porque a instância associada à sessão ainda não foi inicializada. |
JET_errOutOfCursors |
Não existem recursos de cursor disponíveis. |
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. Esse erro só será retornado 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 desligada. |
Em caso de êxito, ptableid é definido como um cursor duplicado.
Em caso de falha, nenhuma alteração é feita. O estado de tableid é inalterado.
Comentários
O cursor duplicado não tem todo o estado do cursor copiado. O local do cursor duplicado, incluindo o índice atual, geralmente é diferente do cursor fornecido. O cursor duplicado sempre é retornado no índice clusterizado e na primeira linha da tabela. Se a tabela estiver vazia, o cursor duplicado não estará em nenhuma linha.
As tabelas abertas com JetDupCursor geralmente devem ser fechadas com JetCloseTable. A exceção a essa regra ocorre quando JetDupCursor é chamado em uma transação e a transação é revertida (com JetRollback). Ao reverter uma transação, o cursor é fechado automaticamente. Nesse caso, é um erro fechar a tabela com JetCloseTable.
O número de tabelas que podem ser abertas simultaneamente é afetado diretamente por JET_paramMaxOpenTables. Consulte Parâmetros do sistema para obter detalhes.
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_GRBIT
JET_SESID
JET_TABLEID
JetCloseTable
JetRollback
JetStopService
Parâmetros do sistema