Função JetCreateIndex4W
Aplica-se a: Windows | Windows Server
A função JetCreateIndex4W cria índices sobre dados em um banco de dados do Mecanismo de Armazenamento Extensível (ESE), que pode ser usado para localizar dados específicos rapidamente.
A função JetCreateIndex4W foi introduzida no sistema operacional Windows 8.
JET_ERR JET_API JetCreateIndex4W(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_INDEXCREATE2* pindexcreate,
__in unsigned long cIndexCreate
);
Parâmetros
sesid
O contexto de sessão de banco de dados a ser usado para a chamada à API.
Tableid
A tabela na qual o índice será criado.
pindexcreate
Uma matriz de estruturas de JET_INDEXCREATE2 , cada uma das quais define um índice a ser criado.
cIndexCreate
O número de elementos na matriz pindexcreate .
Valor retornado
Essa função retorna o tipo de dados JET_ERR com um dos códigos de retorno listados na tabela a seguir. 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_errCannotIndex |
Foi feita uma tentativa de indexar em uma coluna SLV ou atualização de escrow (observe que as colunas SLV foram preteridas). |
JET_errColumnNotFound |
Foi feita uma tentativa de indexação em uma coluna inexistente. Uma tentativa de indexar condicionalmente em uma coluna inexistente também pode produzir esse erro. |
JET_errDensityInvalid |
Esse erro será retornado se o membro ulDensity da estrutura JET_INDEXCREATE2 estiver definido como um número menor que 20 ou maior que 100. |
JET_errIndexDuplicate |
Foi feita uma tentativa de definir dois índices idênticos. |
JET_errIndexHasPrimary |
Foi feita uma tentativa de especificar mais de um índice primário para uma tabela. Uma tabela deve ter exatamente um índice primário. Se nenhum índice primário for especificado, o mecanismo de banco de dados criará um de forma transparente. |
JET_errIndexInvalidDef |
Uma definição de índice inválida foi especificada. Veja a seguir alguns possíveis motivos para esse erro:
|
JET_errIndexTuplesInvalidLimits |
Aplica-se a versões do Windows começando com o Windows XP. Uma estrutura JET_TUPLELIMITS foi especificada e não há suporte para seus limites. Para obter mais informações, consulte a seção comentários da estrutura JET_TUPLELIMITS . |
JET_errIndexTuplesNonUniqueOnly |
Aplica-se a versões do Windows começando com o Windows XP. Um índice de tupla não pode ser exclusivo (grbit não deve ter JET_bitIndexTuples e JET_bitIndexUnique definidos). |
JET_errIndexTuplesOneColumnOnly |
Aplica-se a versões do Windows começando com o Windows XP. Um índice de tupla só pode ser sobre uma única coluna (ou seja, o membro grbit da estrutura JET_INDEXCREATE2 tem JET_bitIndexTuples conjunto e o membro szKey da estrutura JET_INDEXCREATE2 especifica mais de uma coluna). |
JET_errIndexTuplesSecondaryIndexOnly |
Aplica-se a versões do Windows começando com o Windows XP. Um índice de tupla não pode ser um índice primário (ou seja, o membro grbit da estrutura JET_INDEXCREATE2 não deve ter JET_bitIndexPrimary e JET_bitIndexTuples definidos). |
JET_errIndexTuplesTextColumnsOnly |
Aplica-se a versões do Windows começando com o Windows XP. Um índice de tupla só pode estar em um texto ou coluna Unicode. Uma tentativa de indexar outras colunas (por exemplo, colunas binárias) resultará em JET_errIndexTuplesTextColumnsOnly. |
JET_errIndexTuplesVarSegMacNotAllowed |
Aplica-se a versões do Windows começando com o Windows XP. Um índice de tupla não permite que o membro cbVarSegMac da estrutura JET_INDEXCREATE2 seja definido. |
JET_errInTransaction |
Foi feita uma tentativa de criar um índice sem informações de versão durante uma transação. |
JET_errInvalidgrbit |
A definição de índice é inválida porque o membro grbit da estrutura JET_INDEXCREATE2 contém valores inconsistentes. Veja a seguir alguns possíveis motivos:
Ao criar vários índices ao mesmo tempo (ou seja, se o parâmetro cIndexCreate for maior que um), nenhum dos índices poderá conter nenhum dos seguintes bits:
|
JET_errInvalidLanguageId |
Uma LCID (ID de Localidade) inválida foi passada (por meio do membro lcid na estrutura JET_UNICODEINDEX , à qual o membro pidxunicode na estrutura JET_INDEXCREATE2 contém um ponteiro para ou por meio do membro lcid da estrutura JET_INDEXCREATE2 ). |
JET_errInvalidName |
Um nome de índice inválido foi especificado. Consulte JET_INDEXCREATE2 para obter mais detalhes. |
JET_errInvalidParameter |
Um parâmetro inválido foi passado para a API. Veja a seguir alguns motivos pelos quais esse erro pode ser retornado:
|
JET_errUnicodeTranslationFail |
Ocorreu um erro ao tentar normalizar uma coluna Unicode. Isso pode ser causado por ficar sem recursos do sistema. |
JET_errSpaceHintsInvalid |
Um elemento da estrutura de dicas de espaço JET não estava correto ou acionável. |
Comentários
A função JetCreateIndex4W itera por meio dos índices fornecidos no parâmetro pindexcreate e, às vezes, será anulada na primeira falha. Quaisquer índices após o primeiro índice com um erro podem não ter sido tentados, mesmo que o membro err da estrutura JET_INDEXCREATE2 contenha JET_errSuccess.
Requisitos
Requisito | Valor |
---|---|
Cliente |
Requer Windows 8. |
Servidor |
Requer Windows Server 2012. |
Cabeçalho |
Declarado em Esent.h. |
Biblioteca |
Use ESENT.lib. |
DLL |
Requer ESENT.dll. |
Confira também
JET_CONDITIONALCOLUMN
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JET_INDEXCREATE2
JetCreateIndex
JetCreateTableColumnIndex
JetCreateTableColumnIndex2
JET_SPACEHINTS