Compartilhar via


CeWriteRecordProps (EDB)

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função ou insere um novo registro ou atualiza as propriedades de um registro existente.

Essa função não trabalho com bancos de dados CEDB. Para obter mais informações sobre CEDB, consulte CEDB Reference.

Syntax

CEOID CeWriteRecordProps(
  HANDLE hDatabase,
  CEOID oidRecord,
  WORD cPropID,
  CEPROPVAL* prgPropVal
);

Parameters

  • hDatabase
    [no] Identificador para o banco de dados para inserir ou atualização de registro. O banco de dados é aberto com a função CeOpenDatabaseInSession (EDB).
  • oidRecord
    [no] Identificador de objeto (OID) do registro ao qual as propriedades especificadas são gravadas. Se este parâmetro for definido para zero, um novo registro é criado e preenchido com as propriedades especificadas.
  • cPropID
    [no] Número de propriedades na matriz especificada pelo prgPropVal parâmetro. Este parâmetro não pode ser definido como zero.
  • prgPropVal
    [no] Ponteiro para uma matriz de CEPROPVAL estruturas que especifica valores de propriedade a serem gravados para o registro especificado.

Return Value

O OID do registro ao qual as propriedades foram escritas indica sucesso. Zero indica falha. Para informações de erro estendidas get, chamar GetLastError. A seguinte tabela mostra os valores possíveis.

Return valor Descrição

ERROR_ACCESS_DENIED

Indica um do seguinte:

  • Uma propriedade foi adicionada com DB_PROP_NOTNULL definida e NULL é definido como o valor para essa propriedade, ou você tentou excluir essa propriedade.
  • O banco de dados tem pedidos classificar que possuem o sinalizador CEDB_SORT_NONNULL e um do correspondente propriedades no registro atualizado ou inserido é definida como NULL ou foi excluído.

ERROR_ALREADY_EXISTS

O banco de dados tem pedidos classificar que possuem o sinalizador CEDB_SORT_UNIQUE e o registro que está sendo atualizado ou inserido gera uma chave que é um duplicado de outra chave na ordem de classificar.

ERROR_BAD_LENGTH

Os dados que deve ser gravado excede o tamanho máximo de registro.

ERROR_DISK_FULL

O liberado foi chamado quando o disco estava cheia. Essa função armazena em cache todos os dados até um liberado operação ocorre explicitamente ou implicitamente.

ERROR_INSUFFICIENT_BUFFER

Um ímpar número de bytes foram gravado quando usar CEVT_LPWSTR.

ERROR_INVALID_HANDLE

O hDatabase parâmetro for definido como NULL ou igual a INVALID_HANDLE_VALUE.

ERROR_INVALID_PARAMETER

Indica um do seguinte inválido Parâmetros:

  • Um valor CEVT_FILETIME na estrutura CEPROPVAL é definido como zero.
  • O oidRecord parâmetro for definido como NULL ou inválido.
  • O cPropID parâmetro está definido para zero, ou prgPropVal é definido como NULL.
  • Uma propriedade identificação especificada na prgPropVal matriz não consta o atual definir propriedade banco de dados. Você deve especificar as propriedades ao criar um banco de dados ou use a função CeAddDatabaseProps (EDB) depois que um banco de dados for criado. A uma exceção é se o banco de dados é vazio, isto é, contém não dados, embora ele pode ter propriedades. Este maiúsculas e minúsculas, essa função adiciona essas propriedades.

ERROR_NOT_FOUND

Indica um do seguinte:

  • O registro especificado por oidRecord não existe.
  • O banco de dados para o qual o identificador foi obtido foi desmontado.

ERROR_SHARING_VIOLATION

Indica um estar em conflito com bloqueio.

Remarks

Gravar operações são armazenados em cache até que um liberado operação ocorre. O liberado ocorre um após o liberado intervalo tiver decorrido ou quando você chamar a função CeFlushDBVol (EDB).

Essa função deixa o ponteiro de busca sobre o registro que está gravado. No entanto, a posição desse registro na ordem de classificar pode alteração se suas propriedades classificar são incluídas nessas propriedades que são modificadas. Portanto, usando essa função em conjunto com a função CeSeekDatabaseEx (EDB) pode resultar em comportamento inesperado buscar.

Para excluir um valor da propriedade, isto é, para definir o valor para NULL, defina o sinalizador CEDB_PROPDELETE para o apropriado valor da propriedade. Isso permite que múltiplo exclui e altera em um único chamar, que é muito mais eficiente que chama múltiplo.

Nenhuma memória é liberada pelo chamador. Ponteiros in a CEPROPVAL Estruturas podem estar em qualquer lugar na espaço de endereço do chamador. Eles podem ser empacotados, as in a matriz retornado pela função a CeReadRecordPropsEx (EDB), ou eles podem ser alocados de forma independente.

Ao escrever seqüências de caracteres com CEVT_LPWSTR, escreva um número par de bytes. Caso contrário, GetLastError retorna ERROR_INSUFFICIENT_BUFFER.

As diferenças entre essa função e o equivalente CEDB é a seguinte função:

  • Para gravar propriedades, você deve primeiro adicionou a propriedade identificação para o banco de dados com a função CeAddDatabaseProps (EDB). Se o banco de dados a uma exceção a isso é vazio de dados, embora ele pode ter propriedades. Neste maiúsculas e minúsculas, o registro é gravado e as propriedades passados com prgPropVal São adicionados como propriedades para o banco de dados. Se as propriedades forem adicionadas para o banco de dados, os erros relevantes adicionados com CeAddDatabaseProps são propagadas.
  • Se CEDB_SORT_UNIQUE for usado, uma inserção que não especificar todas as propriedades ainda podem funcionar, com NULL que está sendo inserido para as propriedades que não foram especificadas. Para determinar exclusividade, NULL é tratado como se fosse um valor. Somente um NULL valor é permitido. Em CEDB, um exclusivo restrição requer que todas as propriedades sejam gravados.

Requirements

Header windbase.h
Library coredll.lib
Windows Embedded CE Windows CE 5.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

EDB Functions
CeOpenDatabaseInSession (EDB)
CeAddDatabaseProps (EDB)
CeFlushDBVol (EDB)