Compartilhar via


Estrutura JET_COLUMNBASE

Aplica-se a: Windows | Windows Server

Estrutura JET_COLUMNBASE

A estrutura JET_COLUMNBASE descreve os parâmetros de uma coluna base. As funções JetGetColumnInfo e JetGetTableColumnInfo usam a estrutura JET_COLUMNBASE .

    typedef struct {
      unsigned long cbStruct;
      JET_COLUMNID columnid;
      JET_COLTYP coltyp;
      unsigned short wCountry;
      unsigned short langid;
      unsigned short cp;
      unsigned short wFiller;
      unsigned long cbMax;
      JET_GRBIT grbit;
      tchar szBaseTableName[256];
      tchar szBaseColumnName[256];
    } JET_COLUMNBASE;

Membros

Cbstruct

O tamanho dessa estrutura, em bytes. Defina cbStruct como sizeof( JET_COLUMNBASE ).

Columnid

Reservado. Defina columnid como 0 (zero).

coltyp

O tipo da coluna (por exemplo, texto, binário ou numérico). Para obter mais informações, consulte JET_COLTYP.

wCountry

Reservado. Defina como 0 (zero).

Langid

Reservado. Defina como 0 (zero).

cp

A página de código da coluna. Os únicos valores válidos para colunas de texto são inglês (1252) e Unicode (1200). Um valor zero significa que o padrão será usado (inglês, 1252). Se a coluna não for uma coluna de texto, a página de código será definida automaticamente como zero.

wFiller

Reservado. Defina como 0 (zero).

cbMax

O comprimento máximo, em bytes, de uma coluna de comprimento variável ou o comprimento real, em bytes, de uma coluna de comprimento fixo.

grbit

Opções para a coluna, incluindo zero ou mais dos valores a seguir.

Valor

Significado

JET_bitColumnFixed

A coluna é fixa e ocupa a mesma quantidade de espaço em uma linha, independentemente da quantidade de dados que ela contém. JET_bitColumnFixed não pode ser combinado com JET_bitColumnTagged e não pode ser usado quando o membro coltyp é definido como JET_coltypLongText ou JET_coltypLongBinary.

JET_bitColumnTagged

A coluna será marcada e ocupará espaço no banco de dados somente se contiver dados. JET_bitColumnTagged não pode ser combinado com JET_bitColumnFixed, JET_bitColumnVersion ou JET_bitColumnEscrowUpdate.

JET_bitColumnNotNULL

A coluna não deve ser definida como um valor NULL .

JET_bitColumnNotNULL não pode ser combinado com JET_bitColumnUserDefinedDefault.

JET_bitColumnVersion

A coluna é uma coluna de versão que especifica a versão da linha. O valor dessa coluna começa em zero e é incrementado automaticamente para cada atualização da linha.

JET_bitColumnVersion só pode ser usado quando o membro coltyp é definido como JET_coltypLong e não pode ser combinado com JET_bitColumnAutoincrement, JET_bitColumnEscrowUpdate, JET_bitColumnTagged ou JET_bitColumnUserDefinedDefault.

JET_bitColumnAutoincrement

A coluna é incrementada automaticamente. O número é um número crescente e tem a garantia de ser exclusivo dentro de uma tabela. Os números, no entanto, podem não ser sequenciais. Por exemplo, se cinco linhas forem inseridas em uma tabela, a coluna incrementada automaticamente poderá conter os valores { 1, 2, 6, 7, 8 }.

JET_bitColumnAutoincrement só pode ser usado quando o membro coltyp é definido como JET_coltypLong ou JET_coltypCurrency e não pode ser combinado com JET_bitColumnEscrowUpdate, JET_bitColumnUserDefinedDefault ou JET_bitColumnVersion.

Windows 2000: JET_bitColumnVersion só pode ser usado quando o membro coltyp é definido como JET_coltypLong.

JET_bitColumnUpdatable

Válido somente para chamadas para JetGetColumnInfo. JET_bitColumnUpdatable não pode ser combinado com JET_bitColumnUserDefinedDefault.

JET_bitColumnTTKey

Válido somente em chamadas para JetOpenTable.

JET_bitColumnTTDescending

Válido somente em chamadas para JetOpenTempTable.

JET_bitColumnMultiValued

A coluna pode ter vários valores. Uma coluna com vários valores pode ter zero, um ou mais valores associados a ela. Os vários valores em uma coluna com vários valores são identificados por um número no membro itagSequence de várias estruturas, por exemplo, JET_RETINFO, JET_SETINFO, JET_SETCOLUMN, JET_RETRIEVECOLUMN, JET_ENUMCOLUMNVALUE. Colunas com vários valores devem ser colunas marcadas; ou seja, elas podem não ser colunas de comprimento fixo ou de comprimento variável.

JET_bitColumnEscrowUpdate

Especifica que uma coluna é uma coluna de atualização de escrow que pode ser atualizada simultaneamente por sessões diferentes com JetEscrowUpdate e terá consistência transacional.

  • Uma coluna de atualização de escrow só pode ser criada quando a tabela está vazia.

  • Para uma coluna de atualização de escrow, o membro coltyp deve ser definido como JET_coltypLong.

  • Uma coluna de atualização de escrow deve ter um valor padrão (que é cbDefault deve ser positivo).

  • JET_bitColumnEscrowUpdate não pode ser combinado com JET_bitColumnTagged, JET_bitColumnVersion ou JET_bitColumnAutoincrement.

JET_bitColumnUnversioned

A coluna é criada sem um número de versão. Isso significa que outras transações que tentam adicionar uma coluna com o mesmo nome falharão. JET_bitColumnUnversioned é usado somente com JetAddColumn. Ele não pode ser usado em uma transação.

JET_bitColumnMaybeNull

Reservado para uso futuro.

JET_bitColumnMaybeNull não pode ser combinado com JET_bitColumnUserDefinedDefault.

JET_bitColumnFinalize

Não use. Em vez disso, use JET_bitColumnDeleteOnZero.

A coluna pode ser finalizada. Uma coluna que pode ser finalizada é uma coluna de atualização de escrow que faz com que a linha seja excluída quando a coluna atingir zero. Versões futuras podem invocar uma função de retorno de chamada (consulte JET_CALLBACK). Uma coluna que pode ser finalizada deve ser uma coluna de atualização de escrow. JET_bitColumnFinalize não pode ser combinado com JET_bitColumnUserDefinedDefault.

JET_bitColumnUserDefinedDefault

O valor padrão de uma coluna será fornecido por uma função de retorno de chamada. Consulte JET_CALLBACK. Uma coluna que tenha um padrão definido pelo usuário deve ser uma coluna marcada. Se JET_bitColumnUserDefinedDefault for especificado, o pvDefault deverá apontar para uma estrutura JET_USERDEFINEDDEFAULT e cbDefault deverá ser definido como sizeof( JET_USERDEFINEDDEFAULT ).

JET_bitColumnUserDefinedDefault não pode ser combinado com JET_bitColumnFixed, JET_bitColumnNotNULL, JET_bitColumnVersion, JET_bitColumnAutoincrement, JET_bitColumnUpdatable, JET_bitColumnEscrowUpdate, JET_bitColumnFinalize, JET_bitColumnDeleteOnZero ou JET_bitColumnMaybeNull.

JET_bitColumnDeleteOnZero

A coluna é uma coluna de atualização de escrow e, quando atingir zero, o registro será excluído. Um uso comum para colunas delete-on-zero é como campos de contagem de referência. Quando o número de referências cai para zero, o registro é excluído. Uma coluna delete-on-zero deve ser uma coluna de atualização de escrow.

JET_bitColumnDeleteOnZero substitui JET_bitColumnFinalize.

JET_bitColumnDeleteOnZero não pode ser combinado com JET_bitColumnFinalize ou JET_bitColumnUserDefinedDefault e não pode ser usado com colunas padrão definidas pelo usuário.

szBaseTableName

A tabela da qual a tabela atual herda sua DDL.

szBaseColumnName

O nome da coluna na tabela de modelo.

Comentários

JET_COLUMNBASE contém muitas das mesmas informações que JET_COLUMNDEF, mas adiciona campos de cadeia de caracteres para descrever a tabela base (se um DDL hierárquico foi usado).

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.

Unicode

Implementado como JET_COLUMNBASE_W (Unicode) e ansi (JET_COLUMNBASE_A ).

Consulte Também

JET_CALLBACK
JET_COLTYP
JET_COLUMNDEF
JET_COLUMNID
JET_GRBIT
JET_SESID
JET_TABLEID
JET_USERDEFINEDDEFAULT
JetGetColumnInfo
JetGetTableColumnInfo
JetRenameColumn