Estrutura JET_COLUMNCREATE

Aplica-se a: Windows | Windows Server

Estrutura JET_COLUMNCREATE

A estrutura JET_COLUMNCREATE descreve uma coluna a ser criada em um banco de dados.

    typedef struct tag_JET_COLUMNCREATE {
      unsigned long cbStruct;
      tchar* szColumnName;
      JET_COLTYP coltyp;
      unsigned long cbMax;
      JET_GRBIT grbit;
      void* pvDefault;
      unsigned long cbDefault;
      unsigned long cp;
      JET_COLUMNID columnid;
      JET_ERR err;
    } JET_COLUMNCREATE;

Membros

Cbstruct

O tamanho da estrutura em bytes. Esse campo deve ser inicializado como sizeof( JET_COLUMNCREATE ).

szColumnName

O nome da coluna a ser criada. 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 para ponto de exclamação (!), vírgula (,), colchete de abertura ([) e colchete de fechamento (]), ou seja, caracteres ASCII 0x20, 0x22 por meio de 0x2d, 0x2f até 0x5a, 0x5c 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.

coltyp

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

cbMax

O comprimento máximo, em bytes, de uma coluna de comprimento variável. O comprimento da coluna para colunas de comprimento fixo.

grbit

Um grupo de bits que contém as opções para essa estrutura e que incluem zero ou mais dos valores a seguir.

Valor

Significado

JET_bitColumnFixed

A coluna foi corrigida. Ele sempre usará a mesma quantidade de espaço em uma linha, independentemente de quantos dados estão sendo armazenados na coluna. JET_bitColumnFixed não pode ser usado com JET_bitColumnTagged. Esse bit não pode ser usado com valores longos, como JET_coltypLongText e JET_coltypLongBinary.

JET_bitColumnTagged

A coluna está marcada. As colunas marcadas não ocuparão espaço no banco de dados se não contiverem dados. Esse bit não pode ser usado com JET_bitColumnFixed.

JET_bitColumnNotNULL

A coluna nunca deve ser definida como um valor NULL.

JET_bitColumnAutoincrement

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

Windows 2000: Esse bit só pode ser usado em colunas do tipo JET_coltypLong.

Windows Server 2003 e posterior: Esse bit só pode ser usado em colunas do tipo JET_coltypLong ou JET_coltypCurrency.

JET_bitColumnUpdatable

Esse bit é válido somente em chamadas para JetGetColumnInfo.

JET_bitColumnTTKey

Esse bit é válido somente em chamadas para JetOpenTempTable.

JET_bitColumnTTDescending

Esse bit é válido somente em chamadas para JetOpenTempTable.

JET_bitColumnMultiValued

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

JET_bitColumnEscrowUpdate

A coluna é uma coluna de atualização de caução. Uma coluna de atualização de caução pode ser atualizada simultaneamente por sessões diferentes com JetEscrowUpdate e manter a consistência transacional.

  • Uma coluna de atualização de caução pode ser criada somente quando a tabela está vazia.

  • Uma coluna de atualização de caução deve ser do tipo JET_coltypLong.

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

  • JET_bitColumnEscrowUpdate não pode ser usado em conjunto com as seguintes constantes:

    • JET_bitColumnTagged

    • JET_bitColumnVersion

    • JET_bitColumnAutoincrement

JET_bitColumnUnversioned

A coluna é criada sem uma versão. Outras transações que tentam adicionar uma coluna com o mesmo nome falharão. Esse bit só é útil com JetAddColumn. Ele não pode ser usado em uma transação.

JET_bitColumnMaybeNull

Reservado para uso futuro.

JET_bitColumnFinalize

Use JET_bitColumnDeleteOnZero em vez de JET_bitColumnFinalize. JET_bitColumnFinalize especifica que uma coluna pode ser finalizada. Quando uma coluna que pode ser finalizada tiver uma coluna de atualização de caução que atinja zero, a linha será excluída. Versões futuras podem invocar uma função de retorno de chamada. Para obter mais informações, consulte JET_CALLBACK. Uma coluna que pode ser finalizada deve ser uma coluna de atualização de caução. JET_bitColumnFinalize não pode ser usado com JET_bitColumnUserDefinedDefault.

JET_bitColumnUserDefinedDefault

O valor padrão de uma coluna é fornecido pela função de retorno de chamada JET_CALLBACK. Uma coluna que tenha um padrão definido pelo usuário deve ser uma coluna marcada. pvDefault deve apontar para uma estrutura JET_USERDEFINEDDEFAULT e cbDefault deve ser definido como sizeof(JET_USERDEFINEDDEFAULT).

JET_bitColumnUserDefinedDefault não pode ser usado em conjunto com as seguintes constantes:

  • JET_bitColumnFixed

  • JET_bitColumnNotNULL

  • JET_bitColumnVersion

  • JET_bitColumnAutoincrement

  • JET_bitColumnUpdatable

  • JET_bitColumnEscrowUpdate

  • JET_bitColumnFinalize

  • JET_bitColumnDeleteOnZero

  • JET_bitColumnMaybeNull

JET_bitColumnDeleteOnZero

A coluna é uma coluna de atualização de caução e, quando atingir zero, o registro será excluído. Um uso comum para uma coluna que pode ser finalizada é usá-la como um campo de contagem de referência e quando o campo atinge zero, o registro é excluído. JET_bitColumnDeleteOnZero está relacionado a JET_bitColumnFinalize. Uma coluna delete-on-zero deve ser uma coluna de atualização de caução. JET_bitColumnDeleteOnZero não pode ser usado com JET_bitColumnFinalize. JET_bitColumnDeleteOnZero não pode ser usado com colunas padrão definidas pelo usuário.

pvDefault

Aponta para um buffer que será o valor padrão de uma coluna. O comprimento do buffer é cbDefault. Se não houver nenhum padrão, pvDefault deverá ser definido como NULL e cbDefault deverá ser definido como zero. Se grbit tiver JET_bitColumnUserDefinedDefault definido, pvDefault será interpretado como um ponteiro para uma estrutura JET_USERDEFINEDDEFAULT. Os valores padrão não podem ser maiores que 255 bytes. Se um valor padrão for maior que 255 bytes, ele será truncado silenciosamente.

cbDefault

O tamanho, em bytes, do buffer especificado por pvDefault.

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.

Columnid

Com êxito, o identificador de coluna da coluna recém-criada será passado de volta neste campo. Em caso de falha, o valor é indefinido.

err

O campo err conterá o status de criar esta coluna. Consulte JetAddColumn para obter uma lista de valores retornados prováveis.

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_COLUMNCREATE_W (Unicode) e ansi (JET_COLUMNCREATE_A ).

Consulte Também

JET_COLTYP
JET_COLUMNID
JET_ERR
JET_GRBIT
JET_RETINFO
JET_SETINFO
JET_SETCOLUMN
JET_RETRIEVECOLUMN
JET_ENUMCOLUMNVALUE
JetAddColumn
JetCreateTableColumnIndex
JetCreateTableColumnIndex2
JetEscrowUpdate
JetRenameColumn
JetSetColumns