Compartilhar via


CeSetDatabaseInfoEx (EDB)

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função Configura parâmetros banco de dados, incluindo o nome, tipo e classificar order(s).

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

Syntax

BOOL CeSetDatabaseInfo(
  PCEGUID pGuid,
  CEOID oidDbase,
  CEDBASEINFO* pNewInfo
);

Parameters

  • pGuid
    [no] CEGUID do volume montado na qual o banco de dados identificados pela oidDbase parâmetro reside. Você pode montar um volume com a função CeMountDBVolEx (EDB)
  • oidDbase
    [no] OID do banco de dados para definir o novo informações do banco de dados. Esta banco de dados devem existir no volume especificado por pGuid. Esta OID deve tiverem sido gerada pela função CeCreateDatabaseWithProps (EDB).
  • pNewInfo
    [no] Ponteiro para uma estrutura CEDBASEINFOEX (EDB) que contém novas informações parâmetro para o banco de dados. O ftLastModified e dwSize Os membros da estrutura não são usados.

Return Value

TRUE indica sucesso. FALSE 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

Um não-NULL requisito não foi atendido.

ERROR_ALREADY_EXISTS

Ocorreu uma violação exclusividade. De exemplo, houve uma tentativa para adicionar um ordem de classificação em whcih os valores não são exclusivo.

ERROR_INVALID_PARAMETER

Um ou mais parâmetros inválidos.

ERROR_NOT_FOUND

O volume especificado por pGuid Não existe, ou o banco de dados especificado por oidDbase Não existe no volume especificado por pGuid.

ERROR_NOT_SUPPORTED

O dwFlags membro das CEDBASEINFOEX estrutura retornada por pNewInfo Contém um do seguinte sinalizadores:

  • CEDB_VALIDMODTIME. EDB não não suporte horários de modificação em bancos de dados.
  • CEDB_SYSTEMDB. EDB não não suporte usuário funções.

ERROR_SHARING_VIOLATION

O banco de dados que está sendo modificado está atualmente aberto.

Remarks

O ERROR_INVALID_PARAMETER podem ser retornados no seguinte situações:

  • O pGuid parâmetro for definido como NULL.
  • O pNewInfo parâmetro for definido como NULL.
  • O wVersion membro das CEDBASEINFOEX estrutura retornada por pNewInfo não é igual a CEDBASEINFO_VERSION.
  • O dwFlags membro das CEDBASEINFOEX estrutura retornada por pNewInfo Inclui o sinalizador CEDB_VALIDNAME e o wszDbaseName membro das CEDBASEINFOEX estrutura retornada por pNewInfo Contém um seqüência vazia ou tem todos os espaços.
  • O dwFlags membro das CEDBASEINFOEX estrutura retornada por pNewInfo Tenha o sinalizador CEDB_VALIDSORTSPEC e o wNumSortOrder membro das CEDBASEINFOEX estrutura retornada por pNewInfo é maior que CE_MAXSORTORDER (16).
  • Há pedidos classificar especificados, mas um ou mais dos elementos na rgSortSpecs membro das CEDBASEINFOEX estrutura retornada por pNewInfo não é válido. O seguinte membros de uma estrutura SORTORDERSPECEX (EDB) devem ser válido:
    • O wVersion membro deve ser definido como SORTORDERSPECEX_VERSION.
    • O wNumProps membro não pode ser maior que CE_MAXSORTPROP (16).
    • As identificações propriedade em rgPropID Todos devem ter válido tipos dados CEDB da enumeração xxx CEVT_.
    • A propriedade não pode ser uma tipo de dados CEVT_STREAM porque você não pode criar pedidos classificar em fluxos.

Essa função é bem-sucedida somente se o banco de dados não estiver aberto.

Quando o sinalizador CEDB_VALIDSORTSPEC é especificada na dwFlags membro das CEDBASEINFOEX estrutura retornada por pNewInfo, considere o seguinte problemas:

  • Se você adicionar novos pedidos classificar para um grande banco de dados, essa operação podem ser demorados.
  • Se você tentar alteração uma ordem de classificação para classificar em não-NULL chaves propriedades OU exclusivo, a alteração pode falhar porque os registros existentes não satisfaçam esses novos requisitos. De exemplo, Nulls ou duplicatas talvez já exista. Quando isso ocorre, o banco de dados retém sua original informações. Um erro ERROR_ACCESS_DENIED é retornado se um não-NULL requisito não for satisfeito, e um erro ERROR_ALREADY_EXISTS é retornado se existirem valores não-exclusivo. Uma falha desse tipo é potencialmente muito lenta.
  • Se houver pedidos classificar no banco de dados antes chamado essa função e alguns ou todos eles não serão especificados na rgSortSpecs membro das CEDBASEINFOEX estrutura retornada por pNewInfo, essa função Limpa o banco de dados e não usado remove pedidos classificar.

Alterar classificar pedidos pode ser uma operação muito cara. Antes de fazer isso, considere cautioning o usuário que isso pode ser um processo demorado.

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

  • A compactação
    EDB oferece suporte à compactação e, como com CEDB, o usar como padrão é criar um banco de dados compactado. Ao contrário das CEDB, no entanto, após um banco de dados tem sido criado no Edb, seu status compactação não pode ser alterado. Além disso, compactação se aplica a todos os dados no banco de dados, com a exceção das propriedades de CEVT_STREAM, o tipo que não é compactado Por padrão. Para compactar um transmitir, a propriedade deve ser adicionada usando a estrutura CEPROPSPEC (EDB) e especificando o sinalizador DB_PROP_COMPRESSED. Um transmitir compactada está inacessível para a transmitir API. A função CeReadRecordPropsEx (EDB) deve ser usada em vez disso.
  • Último tempo modificado
    EDB não suporte configuração o chamador a última modificado tempo de uma tabela por este método. Se você especificar CEDB_VALIDMODTIME, essa função retorna FALSE, e GetLastError Retorna ERROR_NOT_SUPPORTED.
  • Funções de Usuário
    EDB não não suporte usuário funções. Se você especificar CEDB_SYSTEMDB, essa função retorna FALSE, e GetLastError Retorna ERROR_NOT_SUPPORTED.
  • Ordens de classificação
    Se uma ordem classificar é restrito a ser exclusivo e, em seguida, edb permite que um único NULL a ocorrer, mas em CEDB não nulls são permitidos. De exemplo, se houver duas propriedades em uma ordem classificar, edb considera os valores "A, B", " A, NULL "," NULL, B " e " NULL, NULL " Como exclusivo valores, enquanto no CEDB qualquer par que contém um NULL valor não pode ser inserido na ordem de classificar.

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
CeCreateDatabaseWithProps (EDB)
CeMountDBVolEx (EDB)
CeReadRecordPropsEx (EDB)
CEDBASEINFOEX (EDB)
CEPROPSPEC (EDB)

Concepts

EDB Schema Support