Função JetAddColumn
Aplica-se a: Windows | Windows Server
Função JetAddColumn
A função JetAddColumn adiciona uma nova coluna a uma tabela existente em um banco de dados ESE.
JET_ERR JET_API JetAddColumn(
__in JET_SESID sesid,
__in JET_TABLEID tableid,
__in JET_PCSTR szColumnName,
__in const JET_COLUMNDEF* pcolumndef,
__in_opt const void* pvDefault,
__in unsigned long cbDefault,
__out_opt JET_COLUMNID* pcolumnid
);
Parâmetros
sesid
O contexto de sessão de banco de dados a ser usado para a chamada à API.
Tableid
A tabela à qual adicionar a coluna.
szColumnName
O nome da coluna a ser adicionada. O nome deve atender aos seguintes critérios:
Ele deve ter menos de JET_cbNameMost caracteres de comprimento, não incluindo o NULL de terminação.
Ele deve conter caracteres somente dos seguintes conjuntos: 0 a 9, A a Z, a a z e todas as outras pontuações, exceto o ponto de exclamação (!), vírgula (,), colchete de abertura ([) e colchete de fechamento (]) — ou seja, caracteres ASCII 0x20, 0x22 0x2d, 0x2f 0x5a, 0x5c e 0x5d por meio de 0x7f.
Ele não pode começar com um espaço.
Ele deve conter pelo menos um caractere que não seja de espaço.
pcolumndef
Um ponteiro para uma estrutura JET_COLUMNDEF , que define os dados que podem ser armazenados em uma coluna.
pvDefault
Um ponteiro para um buffer que contém o valor padrão da coluna. O comprimento do buffer é cbDefault. Se não houver nenhum padrão, defina pvDefault como NULL e cbDefault como zero. Os valores padrão não podem ser maiores do que JET_cbColumnMost bytes para colunas fixas ou bytes JET_cbLVDefaultValueMost para valores longos. Se um valor padrão for maior que isso, ele será truncado silenciosamente.
Se grbit tiver JET_bitColumnUserDefinedDefault definido, pvDefault será interpretado como um ponteiro para uma estrutura JET_USERDEFINEDDEFAULT .
cbDefault
O tamanho, em bytes, do buffer especificado em pvDefault.
pcolumnid
Um ponteiro para uma estrutura JET_COLUMNID que, com êxito, receberá o identificador da coluna recém-criada. Em caso de falha, o valor é indefinido.
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 bem-sucedida. |
JET_errFixedDDL |
Foi feita uma tentativa de modificar a definição de dados de uma tabela DDL fixa. Um exemplo de uma tabela com DDL fixa é uma Tabela de Modelo. |
JET_errInvalidParameter |
Um parâmetro inválido foi passado para a API. Alguns exemplos de parâmetros inválidos são:
|
JET_errInTransaction |
Foi feita uma tentativa de adicionar uma coluna com o conjunto de bits JET_bitColumnUnversioned, mas a sessão está atualmente em uma transação. |
JET_errColumnDuplicate |
Uma coluna já existe. Foi feita uma tentativa de adicionar uma coluna sem informações de versão e essa coluna já existe. |
JET_errTableNotEmpty |
A tabela contém dados. Uma coluna Escrow Update só pode ser adicionada a uma tabela vazia. |
JET_errRecordTooBig |
O disco é muito grande. A soma do parâmetro cbMax para as colunas fixas não deve exceder um determinado valor. |
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_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_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. O log de eventos fornecerá mais detalhes se o log suficiente estiver habilitado. |
JET_wrnColumnMaxTruncated |
Um aviso que indica que o comprimento máximo (cbMax) de uma coluna fixa ou variável foi maior que JET_cbColumnMost. Esse limite não se aplica a Valores Longos (ou seja , JET_coltypLongBinary e JET_coltypLongText). |
JET_errInvalidName |
Um nome inválido foi passado como szColumnName. Para obter mais informações sobre as restrições, consulte os critérios para szColumnName. |
JET_errInvalidColumnType |
O campo coltyp não foi definido como um tipo de coluna válido. |
JET_errInvalidCodePage |
O parâmetro cp da estrutura JET_COLUMNDEF 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_errTaggedNotNULL |
JET_bitColumnNotNULL não pode ser usado com colunas marcadas, Valor Longo ou SLV. |
JET_errInvalidgrbit |
Uma combinação inválida de grbits foi especificada. Alguns dos motivos para esse erro são:
|
JET_errMultiValuedColumnMustBeTagged |
Uma coluna de vários valores (JET_bitColumnMultiValued) só pode ser usada em uma coluna marcada ou valor longo (JET_coltypLongBinary ou JET_coltypLongText). |
JET_errCannotBeTagged |
Foi feita uma tentativa de usar uma coluna marcada quando a coluna pode não ser marcada. Algumas das restrições para não permitir colunas marcadas são:
|
JET_errExclusiveTableLockRequired |
Um bloqueio exclusivo na tabela era necessário para essa operação. |
JET_wrnColumnMaxTruncated |
Um aviso que indica que o comprimento máximo (cbMax) de uma coluna fixa ou variável foi maior que JET_cbColumnMost. Esse limite não se aplica a Valores Longos (ou seja , JET_coltypLongBinary e JET_coltypLongText). |
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 JetAddColumnW (Unicode) e JetAddColumnA (ANSI). |
Consulte Também
JET_COLTYP
JET_COLUMNCREATE
JET_COLUMNDEF
JET_COLUMNID
JET_ERR
JET_GRBIT
JET_SESID
JET_TABLEID
JetCreateTableColumnIndex
JetCreateTableColumnIndex2