CeWriteRecordProps (EDB)
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:
|
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:
|
ERROR_NOT_FOUND |
Indica um do seguinte:
|
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)