Compartilhar via


CeReadRecordProps (RAPI)

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Esta função lê propriedades a partir de atual registro de um banco de dados em um remoto dispositivo baseado em Windows Embedded CE.

Observação

Esse método foi substituído.Uso CeReadRecordPropsEx Em vez disso.

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 o CeOpenDatabase função.
  • dwFlags
    [no] Especifica um máscara de bits de ler sinalizadores. É o seguinte valor.

    Valor Descrição

    CEDB_ALLOWREALLOC

    O LocalAlloc função 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
    [in, Out] Ponteiro para o número de identificadores propriedade na matriz especificada pelo rgPropID parâmetro. Se rgPropID é 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 é NULL, CeReadRecordProps 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 especificado e este parâmetro for 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. Observe que 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 longo para uma variável que contém o tamanho, em bytes, da reserva especificada pelo lplpBuffer parâmetro. Quando CeReadRecordProps Retorna, lpcbBuffer 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 CeGetLastError e CeRapiGetError. Valores possíveis para CeGetLastError Incluir o seguinte:

  • ERROR_INVALID_PARAMETER
    Foi um parâmetro inválido.
  • ERROR_NO_DATA
    Nenhuma das propriedades solicitadas foi encontrada. A reserva saída e o tamanho válido.
  • ERROR_INSUFFICIENT_BUFFER
    A reserva especificada não era grande o suficiente e a falha realocação — se o sinalizador CEDB_ALLOWREALLOC foi especificado. O parâmetro lpcbBuffer contém o exigido tamanho do buffer.
  • ERROR_KEY_DELETED
    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_MORE_ITEMS
    O atual buscar ponteiro estiver posicionado no final do banco de dados.

Remarks

O CeReadRecordProps 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 CeOpenDatabase foi definido como CEDB_AUTOINCREMENT — então CeReadRecordProps Incrementa o ponteiro buscar por um de modo que o próximo chamar lê o próximo registro na atual ordem classificar. Isto é, se a banco de dados foi aberto com um ativo ordem classificar, em seguida, CeReadRecordProps retornará os registros em ordem classificada. Se o banco de dados não foi aberto com um ativo ordem classificar, em seguida, a ordem em que os registros são retornados não estará previsível.

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 defina o rgPropID parâmetro para NULL quando chamado a função.

Quando tiver terminado as propriedades de leitura, você precisará livre a memória usada pelo lplpBuffer reserva com um chamar para CeRapiFreeBuffer.

Se uma propriedade foi solicitada, como seqüências de caracteres ou binário objetos grandes (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 a 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 for NULL.

Observação

Versões anteriores de Windows Embedded CE atribuído objeto identificadores a objetos em outros sistemas arquivo, such as o sistema de arquivos tabela de alocação de arquivos (FAT).Esses identificadores objeto foram garantia ser exclusivo em um volume, mas não entre múltiplo volumes.Eficaz com versão 3.0, apenas objetos em armazenar o objeto tiver válido, exclusivo objeto identificadores e armazenar o objeto é o único volume que pode retornar um objeto identificador.

Requirements

Header rapi.h
Library rapi.lib
Windows Embedded CE Windows CE 3.0 and later
Windows Mobile Pocket PC 2002 and later, Smartphone 2002 and later

See Also

Reference

RAPI Functions
CeOpenDatabase (RAPI)
CeSeekDatabase (RAPI)
CEPROPVAL