Função JetCreateTable
Aplica-se a: Windows | Windows Server
Função JetCreateTable
A função JetCreateTable cria uma tabela vazia em um banco de dados ESE.
JET_ERR JET_API JetCreateTable(
__in JET_SESID sesid,
__in JET_DBID dbid,
__in const tchar* szTableName,
__in unsigned long lPages,
__in unsigned long lDensity,
__out JET_TABLEID* ptableid
);
Parâmetros
sesid
O contexto de sessão do banco de dados a ser usado.
dbid
O identificador de banco de dados a ser usado.
szTableName
O nome do índice a ser criado.
O nome deve ser formatado de acordo com as seguintes regras:
Seja menor que JET_cbNameMost, não incluindo o NULL de terminação.
Seja feito do seguinte conjunto de caracteres: 0 a 9, A a Z, a a z e todas as outras pontuações, exceto "!" (ponto de exclamação), "," (vírgula), "[" (colchete de abertura) e "]" (colchete de fechamento) — ou seja, caracteres ASCII 0x20, 0x22 por meio de 0x2d, 0x2f por meio de 0x5a, 0x5c 0x5d 0x7f.
Não comece com um espaço.
Seja feito de pelo menos um caractere que não seja de espaço.
lPages
O número inicial de páginas de banco de dados a serem alocadas para a tabela. Especificar um número maior que um poderá reduzir a fragmentação se muitas linhas forem inseridas nesta tabela.
lDensity
A densidade da tabela, em pontos percentuais. O número deve ser 0 ou no intervalo de 20 a 100. Passar 0 significa que o valor padrão deve ser usado. O padrão é 80.
Ptableid
Em caso de êxito, o identificador de tabela é retornado neste campo. O valor será indefinido se a API não retornar JET_errSuccess.
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_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 log suficiente habilitado, o log de eventos fornecerá mais detalhes. |
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_errCannotNestDDL |
Se ptablecreate-grbit> especificar JET_bitTableCreateTemplateTable, mas ptablecreate-szTemplateTableName> será definido como NULL. |
JET_errColumnDuplicate |
Uma coluna já existe. |
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 decremento automático e não mais do que uma coluna de versão por tabela. |
JET_errDensityInvalid |
Uma densidade inválida foi passada no membro ulDensity na estrutura JET_TABLECREATE ou JET_TABLECREATE2 . |
JET_errDDLNotInheritable |
Significa que a tabela nomeada no membro szTemplateTableName da estrutura JET_TABLECREATE não era 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 JET_TUPLELIMITS foi especificada e não há suporte para seus limites. Consulte a seção 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ó pode 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_errIndexTuplesVarSegMacNotAllowed |
Windows XP e posterior. Um índice de tupla não permite que o membro cbVarSegMac da estrutura JET_INDEXCREATE seja definido. |
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_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 igual a 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
JetCreateTable cria uma tabela que não contém colunas. Para adicionar colunas, consulte JetAddColumn.
Internamente, JetCreateTable chama JetCreateTableColumnIndex2, preenchendo uma estrutura JET_TABLECREATE2 com:
JET_TABLECREATE2.cbStruct = sizeof( JET_TABLECREATE2 )
JET_TABLECREATE2.szTableName = szTableName
JET_TABLECREATE2.ulPages = lPage
JET_TABLECREATE2.ulDensity = lDensity
JET_TABLECREATE2.tableid = JET_tableidNil
Todos os outros campos da estrutura de JET_TABLECREATE2 interna são definidos como zero ou NULL. Na saída, ptableid será definido como JET_TABLECREATE2.tableid.
Consulte JetCreateTableColumnIndex2 para obter mais detalhes.
Assim como JetOpenTable, quando o aplicativo é feito usando o membro tableid retornado da estrutura JET_TABLECREATE2 , 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 JetCreateTableW (Unicode) e JetCreateTableA (ANSI). |
Consulte Também
JET_DBID
JET_ERR
JET_GRBIT
JET_TABLEID
JET_TABLECREATE2
JetAddColumn
JetCreateTableColumnIndex
JetCreateTableColumnIndex2