Compartilhar via


CeReadRecordProps (CEDB)

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

Esta função lê propriedades a partir de atual registro. Essa função é obsoleto. Chame a função CeReadRecordPropsEx (CEDB) em vez disso.

Uma versão RAPI dessa função existe chamado CeReadRecordPropsEx (RAPI).

Syntax

CEOID CeReadRecordProps(
  HANDLE hDbase, 
  DWORD dwFlags, 
  LPWORD lpcPropID, 
  CEPROPID* rgPropID, 
  LPBYTE* lplpBuffer, 
  LPDWORD lpcbBuffer
); 

Parameters

  • hDbase
    [no] Identificador para um aberto banco de dados. O banco de dados devem foram abertos por um chamar anterior para a função CeOpenDatabaseEx2 (CEDB).
  • dwFlags
    [no] Máscara de bits de ler sinalizadores. A seguinte tabela mostra os valores possíveis.

    Valor Descrição

    CEDB_ALLOWREALLOC

    Indica que a função LocalAlloc foi usada para alocar a reserva especificada pelo lplpBuffer parâmetro e o servidor podem realocar a reserva se ele não for grande o suficiente para conter as propriedades solicitadas.

  • lpcPropID
    [no] Ponteiro para o número de identificadores propriedade na matriz especificada pelo rgPropID parâmetro. Se rgPropID é definido como NULL, este parâmetro recebe o número de propriedades recuperadas.
  • rgPropID
    [no] Ponteiro para uma matriz de propriedade identificadores para as propriedades a serem recuperados. Se este parâmetro for definido como NULL, essa função recupera todas as propriedades no registro.
  • lplpBuffer
    [out] Ponteiro para um ponteiro longo para uma reserva que recebe as propriedades solicitadas. Se a pasta dwFlags parâmetro inclui o sinalizador CEDB_ALLOWREALLOC, a reserva pode ser realocada se necessário. Se o sinalizador CEDB_ALLOWREALLOC for especificada e o de conteúdo deste parâmetro é definido como NULL, a servidor usa o LocalAlloc função para alocar uma reserva do apropriado tamanho no chamador é espaço de endereço e retorna um ponteiro para a reserva. Se o sinalizador CEDB_ALLOWREALLOC for especificada, é possível para o valor desse ponteiro para alteração, mesmo em falha. De exemplo, a memória antiga pode ser liberada e a alocação, em seguida, pode falhar, deixando o ponteiro definido como NULL.
  • lpcbBuffer
    [out] Ponteiro para uma variável que contém o tamanho, em bytes, da reserva especificada pelo lplpBuffer parâmetro. Quando essa função retorna, esse parâmetro recebe um valor que indica o real tamanho dos dados copiados para a reserva. Se a reserva era muito pequena para conter os dados, este parâmetro pode ser usado para calcular o quantidade de memória para alocar para a reserva se CEDB_ALLOWREALLOC não foi especificado.

Return Value

Identificador de objeto do registro a partir do qual a ler função indica sucesso. Zero indica falha. Para informações de erro estendidas get, chamar GetLastError. A seguinte tabela mostra os valores possíveis.

Valor Descrição

ERROR_INSUFFICIENT_BUFFER

Indica que a reserva especificada não foi grande o suficiente e a falha realocação. Se o sinalizador CEDB_ALLOWREALLOC foi especificado. O lpcbBuffer parâmetro contém o exigido tamanho do buffer.

ERROR_INVALID_PARAMETER

Indica que um parâmetro estava inválido.

ERROR_KEY_DELETED

Indica que o registro que estava prestes a ser ler foi excluído por outro segmento. Se o atual registro foi atingido como resultado de uma autoseek, esse erro não é retornado e o próximo registro é retornado.

ERROR_NO_DATA

Indica que nenhuma das propriedades solicitadas foi encontrada. A reserva saída e o tamanho válido.

ERROR_NO_MORE_ITEMS

Indica que a atual buscar ponteiro estiver posicionado no final do banco de dados.

Remarks

Esta função lê o conjunto especificado de Propriedades a partir de atual registro. Se a banco de dados foi aberto com o sinalizador autoseek, isto é, se a dwFlags parâmetro de CeOpenDatabaseEx2 foi definido para CEDB_AUTOINCREMENT, essa função incrementa o ponteiro de busca para que o próximo chamar lê o próximo registro na atual ordem classificar. Ou seja, se a banco de dados foi aberto com um ativo ordem classificar, essa função retornará os registros em ordem classificada. Se o banco de dados não foi aberto com um ativo ordem classificar, a ordem em que os registros são retornados não estará previsível.

Quando rgPropID é definido como NULL, essa função NÃO retorna propriedades em qualquer ordem específica. Quando você definir rgPropID Para NULL, use um executar um loop para ler as propriedades retornadas por essa função e verificar a PropID valor de cada propriedade, em vez de assumindo uma ordem específica.

Quando rgPropID está definido para não-NULL, as propriedades são retornadas a ordem que eles estão listados na rgPropID. Se uma propriedade solicitada não está presente no registro, o wFlags membro da estrutura CEPROPVAL é definido como CEDB_PROPNOTFOUND.

Leia que todos necessárias Propriedades a partir de registro em um único chamar. O registro inteiro é armazenado em um formato compactado, e cada tempo uma propriedade é ler, ele deve ser descompactado. Todas as propriedades são retornadas em uma única estrutura empacotada, que consiste de uma matriz de CEPROPVAL estruturas, uma para cada propriedade solicitada ou um para cada propriedade encontrada se o aplicativo definido rgPropID Para NULL quando chamado essa função.

Se uma propriedade Variable-sized foi solicitada, como como seqüências de caracteres ou BLOBs que são compactados no final de matriz, os ponteiros na CEPROPVAL apontar estruturas em isso empacotado estrutura. Isso significa que a memória somente que deve ser liberada é o original ponteiro para a reserva passado para o chamar. Mesmo se essa função falha, ele pode tiver alocado memória no nome do chamador. Liberar o ponteiro retornado por essa função se o ponteiro não está definido para NULL.

Requirements

Header windbase.h
Library coredll.lib
Windows Embedded CE Windows CE 2.10 and later

See Also

Reference

CEDB Functions
CeOpenDatabaseEx2 (CEDB)
CeReadRecordPropsEx (CEDB)
CeSeekDatabaseEx (CEDB)
CEPROPVAL (CEDB)

Other Resources

LocalAlloc
LocalFree