CeSetDatabaseInfoEx2 (CEDB) (Windows CE 5.0)

Send Feedback

This function sets various database parameters, including the name, type, sort-order descriptions, and compression of the database.

This function does not work with EDB databases. For more information on EDB, see EDB Functions.

BOOL CeSetDatabaseInfoEx2( PCEGUID pguid,CEOID oidDbase,CEDBASEINFOEX* pNewInfo);

Parameters

  • pguid
    [in] Pointer to the CEGUID that contains the globally unique identifier of a mounted database volume, or of the object store. Use CREATE_SYSTEMGUID to obtain the GUID of the object store.
  • oidDbase
    [in] Object identifier of the database for which parameters are to be set.
  • pNewInfo
    [in] Pointer to a CEDBASEINFOEX structure that contains new parameter information for the database. The wNumRecords member of the structure is not used.

Return Values

TRUE indicates success. FALSE indicates failure. To get extended error information, call GetLastError. The following table lists possible values for GetLastError.

Value Description
ERROR_INVALID_PARAMETER Indicates that a parameter was invalid.
ERROR_DISK_FULL Indicates that the object store or mounted volume is full and any size changes required could not be accommodated. Changing sort orders can minimally change the size of the stored records.
ERROR_SHARING_VIOLATION Indicates that the CeSetDatabaseInfoEx function tried to remove a sort order that is being used by a currently open database. For Windows CE 3.0 and later, indicates that CeSetDatabaseInfoEx was called on an open database.

Remarks

The sort orders of a database cannot be changed while a handle to that database remains open.

Use CeSetDatabaseInfoEx2 to change the database parameters passed in while creating the database.

If you try to change the database sort order to sort on non-NULL properties or unique keys, the change may fail because existing records do not satisfy those new requirements. The database will retain its original information. An ERROR_ACCESS_DENIED error will return if a non-NULL requirement was not satisfied and an ERROR_ALREADY_EXISTS error if a non-unique keys exist. Processing a failure caused by an ERROR_ALREADY_EXISTS is potentially very slow and should be avoided.

If the database key is constrained to be unique, then all records are required to have all of the sort properties. The addition of a unique constraint adds non-NULL requirements for all of the sort properties. Changing the sort order or compression of a database is a very expensive operation, possibly taking a few minutes. Before calling this function, warn the user that this is a lengthy process.

Changing the compression of a database affects only new and modified records.

If you attempt to change the information for an existing database and pass the CEDB_VALIDNAME flag in the dwFlags member of the CEDBASEINFOEX structure, you will receive an error stating that there is an existing database with that name. If you do not want to change the database name, you should not set the CEDB_VALIDNAME flag. Only the flags for the parameters that are changing should be set. For parameters that are not changing, you should not set the corresponding CEDB_VALID* flag.

Requirements

OS Versions: Windows CE .NET 4.0 and later.
Header: Windbase.h.
Link Library: Coredll.lib.

See Also

CeCreateDatabaseEx2 (CEDB) | CEDBASEINFOEX | CeOidGetInfoEx2 (CEDB) | CREATE_SYSTEMGUID

Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.