Compartilhar via


CeOpenDatabaseInSession (EDB)

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função abre um banco de dados existente em um volume montado que o volume deve ser montado com a função CeMountDBVolEx (EDB).

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

Syntax

HANDLE CeOpenDatabaseInSession(
  HANDLE hSession,
  PCEGUID pGuid,
  PCEOID poid,
  LPWSTR lpwszName,
  SORTORDERSPECEX* pSort,
  DWORD dwFlags,
  CENOTIFYREQUEST* pRequest
);

Parameters

  • hSession
    [no] Identificador para a sessão. Esse identificador deve ser retornado a partir de CeCreateSession (EDB) ou a função CeGetDatabaseSession (EDB). Este parâmetro pode ser definido para NULL, no qual maiúsculas e minúsculas todas as alterações feitas o banco de dados abertos são atômicas. Isso significa que cada alteração é confirmada para o banco de dados e, em seguida, escrita para arquivo quando ocorre um liberado. Se este parâmetro não for definido como NULL, o valor especificado na pGuid parâmetro deve coincidir com o CEGUID do volume a partir do qual esse identificador sessão foi criado. Caso contrário, essa função falhará.
  • pGuid
    [no] Ponteiro para o CEGUID de um volume montado banco de dados. Se este parâmetro é um válido GUID, o volume especificado é usado. Se este parâmetro aponta para um CEGUID criado com CREATE_INVALIDEDBGUID, o poid parâmetro é ignorado, e todos os volumes montados banco de dados são pesquisados para o primeiro banco de dados cujo nome corresponde a lpwszName parâmetro.
  • poid
    [in, Out] Ponteiro para o OID do banco de dados para ser aberto. Para aberto um banco de dados pelo nome, defina este parâmetro para zero, defina lpwszName Para o nome do banco de dados e conjunto pGuidPara o volume banco de dados.
  • lpwszName
    [no] Ponteiro para o seqüência de caracteres NULL-Terminated que contém o nome do banco de dados para ser aberto. Isso é usado junto com pGuid Para especificar o banco de dados se o valor apontado pelo poid é zero. Quando um banco de dados é aberto pelo nome, poid conter a OID do banco de dados abertos no retorno. Se o valor apontado pelo poid é diferente de zero, lpwszName é ignorado.
  • pSort
    [no] Ponteiro para o ativo ordem classificar para o banco de dados. Todas as chamadas subseqüentes para a função CeSeekDatabaseEx (EDB) assumem essa ordem classificar. Se este parâmetro for definido como NULL, nenhuma ordem classificar é escolhida. Se o ponteiro classificar não apontar para uma das estruturas de classificar usadas na criação do banco de dados, as identificações de propriedade e os sinalizadores deve coincidir com os valores usados para um dos pedidos de classificar banco de dados.
  • dwFlags
    [no] Valores possíveis é o seguinte:

    • CEDB_AUTOINCREMENT
      O atual buscar posição é automaticamente incrementadas com cada chamar a função de CeReadRecordPropsEx (EDB).
    • Zero
      O atual posição não é incrementada com cada chamar para o CeReadRecordPropsEx função.
  • pRequest
    [no] Ponteiro para uma estrutura CENOTIFYREQUEST que solicita que notificações sejam enviadas para a janela especificada. Este parâmetro pode ser definido como NULL se um aplicativo não precisar receber notificações.

Return Value

Um identificador para o aberto banco de dados indica sucesso. INVALID_HANDLE_VALUE indica falha. Para informações de erro estendidas get, chamar GetLastError. A seguinte tabela mostra os valores possíveis.

Return valor Descrição

ERROR_FILE_NOT_FOUND

O banco de dados especificado por um poid Ou lpwszName não existe.

ERROR_INVALID_HANDLE

O hSession parâmetro é igual a INVALID_HANDLE_VALUE.

ERROR_INVALID_PARAMETER

Um ou mais parâmetros inválidos.

ERROR_NOT_ENOUGH_MEMORY

Não há memória suficiente alocar o identificador banco de dados.

ERROR_NOT_FOUND

O volume especificado por pGuid não existe.

Remarks

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

  • O hSession parâmetro não está definido para NULL, e o volume GUID de sessão não corresponde ao GUID especificado por pGuid.
  • O pGuid parâmetro for definido como NULL.
  • O pGuid parâmetro contém um GUID criado com o CREATE_INVALIDEDBGUID função, e lpwszName é definido como NULL.
  • O pGuid parâmetro não é um inválido GUID, e poid é definido como NULL.
  • O pGuid parâmetro não é um inválido GUID, *poid é igual a zero, e lpwszName é definido como NULL.
  • O pSort parâmetro não estiver definido como NULL e um ordem de classificação existente sobre o banco de dados não pode ser encontrado que corresponde a propriedade identificações e sinalizadores especificados na pSort.
  • O dwFlags parâmetro não contém um válido sinalizador.
  • O pRequest parâmetro não está definido para NULL. O seguinte situações podem causar esse erro:
    • O dwSize membro de CENOTIFYREQUEST retornado por pRequest não é igual para o tamanho de CENOTIFYREQUEST.
    • O hwnd membro de CENOTIFYREQUEST retornado por pRequest não é um válido identificador janela.

O identificador retornado desta função é um identificador Free-threaded que pode ser usado em múltiplo segmentos no mesmo tempo. Ele deve ser fechado por chamado a função CloseHandle.

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

  • Em Edb, se CEDB_AUTOINCREMENT é especificado quando o banco de dados é aberto, o ponteiro buscar será posicionado no primeiro registro. Se CEDB_AUTOINCREMENT não é especificado, o ponteiro buscar não está posicionado em um registro e o usuário deve chamar o CeSeekDatabaseEx função. Isso é diferente de CEDB, no qual o ponteiro de Busca está sempre posicionado no primeiro registro, regardless of se CEDB_AUTOINCREMENT for especificada.
  • EDB não suporte um volume sistema e, portanto, chamado este functionwith pGuid Definido como CREATE_SYSTEMGUID falha e retorna ERROR_NOT_FOUND.
  • Se pSort é definido como NULL, EDB não usa uma ordem classificar, mas CEDB escolhe uma ordem classificar usar como padrão.
  • EDB suporta múltiplo pedidos classificar na mesma propriedade. Dois pedidos classificar na mesma propriedade são diferenciados por seus sinalizadores. Portanto, classificar pedidos não podem ser identificados exclusivamente por propriedade identificações sozinhos, e CeOpenDatabaseInSession falhará se a ordem classificar não contém os sinalizadores que foram usados quando a ordem classificar foi criado.
  • CREATE_INVALIDEDBGUID é usado para enumerar os volumes CEDB e Edb.

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
CeMountDBVolEx (EDB)
CeCreateSession (EDB)
CeGetDatabaseSession (EDB)
CeSeekDatabaseEx (EDB)
CeReadRecordPropsEx (EDB)