Função JetGetCurrentIndex
Aplica-se a: Windows | Windows Server
Função JetGetCurrentIndex
A função JetGetCurrentIndex determina o nome do índice atual de um determinado cursor. Esse nome também é usado para selecionar novamente esse índice como o índice atual usando JetSetCurrentIndex. Ele também pode ser usado para descobrir as propriedades desse índice usando JetGetTableIndexInfo.
JET_ERR JET_API JetGetCurrentIndex(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__out JET_PSTR szIndexName,
__in unsigned long cchIndexName
);
Parâmetros
sesid
A sessão a ser usada para essa chamada.
Tableid
O cursor a ser usado para essa chamada.
szIndexName
O buffer de saída que recebe o nome do índice atual do cursor.
cchIndexName
O tamanho máximo em caracteres do buffer de saída.
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 de 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_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. |
JET_wrnBufferTruncated |
A operação foi concluída com êxito, mas o buffer de saída era muito pequeno para receber todo o nome do índice. O buffer de saída foi preenchido com o máximo de nome de índice que caberia. Se o buffer de saída tiver pelo menos um caractere de comprimento, a cadeia de caracteres nesse buffer de saída será terminada em nulo. Nota Esse erro não será retornado se cchIndexName for zero. Consulte a seção Comentários para obter mais informações. |
Em caso de êxito, o nome do índice atual do cursor fornecido será retornado no buffer de saída. Se JET_wrnBufferTruncated for retornado, o buffer de saída conterá o máximo do nome do índice que caberá no espaço fornecido. Se o buffer de saída tiver pelo menos um caractere de comprimento, a cadeia de caracteres retornada nesse buffer será terminada em nulo. Nenhuma alteração no estado do banco de dados ocorrerá.
Em caso de falha, o estado do buffer de saída será indefinido. Nenhuma alteração no estado do banco de dados ocorrerá.
Comentários
Se não houver nenhum índice atual para o cursor, uma cadeia de caracteres vazia será retornada. Isso pode acontecer quando o cursor está no índice clusterizado da tabela e nenhum índice primário foi definido. Esse índice é conhecido como o índice sequencial da tabela e não tem nenhuma definição. De qualquer forma, definir o índice atual como uma cadeia de caracteres vazia usando JetSetCurrentIndex selecionará o índice clusterizado, independentemente da presença de uma definição de índice primário.
Há um bug importante nessa função que está presente em todas as versões. Se o buffer de saída for muito pequeno para receber todo o nome do índice e o buffer de saída tiver pelo menos um caractere de comprimento, JET_wrnBufferTruncated NÃO será retornado. JET_errSuccess será retornado. Para evitar esse problema, o buffer de saída sempre deve ter pelo menos JET_cbNameMost + 1 (65) caracteres de comprimento.
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. |
Unicode |
Implementado como JetGetCurrentIndexW (Unicode) e JetGetCurrentIndexA (ANSI). |
Consulte Também
JET_ERR
JET_SESID
JET_TABLEID
JetGetTableIndexInfo
JetSetCurrentIndex