Função JetCreateTableColumnIndex
Aplica-se a: Windows | Windows Server
Função JetCreateTableColumnIndex
A função JetCreateTableColumnIndex cria uma tabela em um banco de dados ESE com um conjunto inicial de índices e um conjunto inicial de colunas de uma matriz de estruturas JET_TABLECREATE . O nome JetCreateTableColumnIndex vem da ordem de criação dos objetos. Primeiro, ele cria uma tabela, colunas e, por fim, índices.
JET_ERR JET_API JetCreateTableColumnIndex(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in_out JET_TABLECREATE* ptablecreate
);
Parâmetros
sesid
O contexto de sessão do banco de dados a ser usado para a chamada à API.
dbid
O identificador de banco de dados a ser usado para a chamada à API.
ptablecreate
Um ponteiro para uma estrutura JET_TABLECREATE que define a tabela a ser criada. Consulte JET_TABLECREATE para obter mais detalhes.
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_errCallbackNotResolved |
A função de retorno de chamada não pôde ser resolvida. A DLL pode não ter sido encontrada ou a função na DLL pode não ter sido encontrada. Com o log suficiente habilitado, o log de eventos fornecerá mais detalhes. |
JET_errCannotIndex |
Foi feita uma tentativa de indexar em uma coluna SLV ou de atualização de caução (observe que as colunas SLV foram preteridas). |
JET_errCannotNestDDL |
Se ptablecreate-grbit> especificar JET_bitTableCreateTemplateTable, mas ptablecreate-szTemplateTableName> for definido como NULL. |
JET_errColumnDuplicate |
Já existe uma coluna. |
JET_errColumnNotFound |
Foi feita uma tentativa de indexação em uma coluna inexistente. Tentar indexar condicionalmente em uma coluna inexistente também pode produzir esse erro. |
JET_errColumnRedundant |
Foi feita uma tentativa de adicionar uma coluna redundante. Não deve haver mais de uma coluna de incremento automático e não mais do que uma coluna de versão por tabela. |
JET_errDensityInvalid |
Esse erro será retornado se o membro ulDensity da estrutura JET_INDEXCREATE estiver definido como um número menor que 20 ou mais de 100. |
JET_errDDLNotInheritable |
Significa que a tabela nomeada no membro szTemplateTableName da estrutura JET_TABLECREATE não foi marcada como uma tabela de modelo (ou seja, essa tabela não tinha JET_bitTableCreateTemplateTable definida). |
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. Alguns dos possíveis motivos para receber esse erro são:
|
JET_errIndexTuplesInvalidLimits |
Windows XP e posterior. Uma estrutura de JET_TUPLELIMITS foi especificada e não há suporte para seus limites. Consulte a seção de comentários da estrutura JET_TUPLELIMITS . |
JET_errIndexTuplesNonUniqueOnly |
Windows XP e posterior. Um índice de tupla não pode ser exclusivo (ou seja, o membro grbit da estrutura JET_INDEXCREATE não deve ter JET_bitIndexPrimary e JET_bitIndexUnique definidos). |
JET_errIndexTuplesOneColumnOnly |
Windows XP e posterior. Um índice de tupla só poderá ser sobre uma única coluna (ou seja, se o membro grbit da estrutura JET_INDEXCREATE tiver JET_bitIndexTuples definido e o membro szKey da estrutura JET_INDEXCREATE especificar mais de uma coluna). |
JET_errIndexTuplesSecondaryIndexOnly |
Windows XP e posterior. Um índice de tupla não pode ser um índice primário (ou seja, o membro grbit da estrutura JET_INDEXCREATE não deve ter JET_bitIndexPrimary e JET_bitIndexTuples definidos). |
JET_errIndexTuplesTextColumnsOnly |
Windows XP e posterior. Um índice de tupla só pode estar em um texto ou coluna Unicode. Uma tentativa de indexar outras colunas (como colunas binárias) resultará em JET_errIndexTuplesTextColumnsOnly. |
JET_errIndexTuplesVarSegMacNotAllowed |
Windows XP e posterior. Um índice de tupla não permite que o membro cbVarSegMac da estrutura JET_INDEXCREATE seja definido. |
JET_errInTransaction |
Foi feita uma tentativa de criar um índice sem informações de versão durante uma transação. |
JET_errInvalidCodePage |
O membro cp da estrutura JET_COLUMNCREATE não foi definido como uma página de código válida. Os únicos valores válidos para colunas de texto são inglês (1252) e Unicode (1200). Um valor 0 significa que o padrão será usado (inglês, 1252). |
JET_errInvalidColumnType |
O membro coltyp da estrutura JET_COLUMNCREATE não foi definido como um tipo de coluna válido. |
JET_errInvalidCreateIndex |
Alguns dos motivos pelos quais esse erro pode ocorrer:
|
JET_errInvalidgrbit |
Uma combinação inválida de membros grbit foi especificada em JET_TABLECREATE ou JET_TABLECREATE2. A definição de índice é inválida porque o membro grbit contém valores inconsistentes. Alguns motivos possíveis são:
|
JET_errInvalidLanguageId |
Uma LCID (ID de Localidade) inválida foi passada (por meio do membro lcid da estrutura JET_UNICODEINDEX que é apontada pelo membro pidxunicode na estrutura JET_INDEXCREATE ou pelo campo lcid da estrutura JET_INDEXCREATE ). |
JET_errInvalidParameter |
Um parâmetro inválido foi dado. Alguns motivos possíveis são:
|
JET_errRecordTooBig |
O disco é muito grande. A soma do membro cbMax da estrutura JET_COLUMNCREATE para todas as colunas fixas não deve exceder um determinado valor. |
JET_errTableDuplicate |
A tabela já existe. |
JET_errTooManyColumns |
Foi feita uma tentativa de adicionar muitas colunas à tabela. Uma tabela não pode ter mais do que JET_ccolFixedMost colunas fixas, não mais do que JET_ccolVarMost colunas de comprimento variável e não mais do que JET_ccolTaggedMost colunas marcadas. |
JET_errUnicodeTranslationFail |
Ocorreu um erro ao tentar normalizar uma coluna Unicode. Isso pode ser causado por ficar sem recursos do sistema. |
Comentários
Chamar JetCreateTableColumnIndex é idêntico a chamar JetCreateTableColumnIndex2, com cada campo na estrutura JET_TABLECREATE2 que contém o valor do campo correspondente de JET_TABLECREATE, com as seguintes exceções:
JET_TABLECREATE2.cbStruct definido como sizeof( JET_TABLECREATE2)
JET_TABLECREATE2.szCallback definido como NULL
JET_TABLECREATE2.cbtyp definido como 0
Consulte JetCreateTableColumnIndex2 para obter mais detalhes.
Assim como JetOpenTable, quando o aplicativo é feito usando o tableid retornado, ele geralmente deve ser fechado com JetCloseTable.
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 JetCreateTableColumnIndexW (Unicode) e JetCreateTableColumnIndexA (ANSI). |
Consulte Também
JET_DBID
JET_ERR
JET_GRBIT
JET_TABLEID
JET_TABLECREATE
JET_TABLECREATE2
JetAddColumn
JetCreateTableColumnIndex
JetCreateTableColumnIndex2