Compartilhar via


EDB Data Types and Size Limits

Windows Mobile Not SupportedWindows Embedded CE Supported

9/8/2008

EDB foi projetado para suporte muitos dos recursos do CEDB tanto Microsoft SQL Server 2005 Compact Edition. Portanto, edb dá suporte a mais tipos dados que CDEB, mas também possui alguns limites tamanho não impostos pelo CEDB.

Tipos de dados com suporte

A seguinte tabela mostra os tipos de dados com suporte por Edb.

Tipo de dados Descrição

CEVT_BLOB

Uma estrutura blob.

CEVT_BOOL

Um Boolean valor.

CEVT_FILETIME

Uma estrutura FILETIME.

CEVT_I2

Um 16-bit número inteiro assinado.

CEVT_I4

Um 32-bit número inteiro assinado.

CEVT_LPWSTR

Um seqüência de caracteres NULL-Terminated.

CEVT_R8

Um 64-bit flutuante.

CEVT_UI2

Um 16-bit inteiro sem assinatura.

CEVT_UI4

Um 32-bit inteiro sem assinatura.

CEVT_STREAM

Somente Edb. Um binário grande transmitir de dados.

CEVT_RECID

Somente Edb. Um 128-bit GUID que identifica exclusivamente um registro.

CEVT_AUTO_I4

EDB apenas um 32 gerado automaticamente-bit número inteiro assinado.

CEVT_AUTO_I8

Somente Edb. Um 64 gerado-autt-número inteiro assinado bit.

CEVT_STREAM

CEVT_STREAM Armazena maior itens dados, como imagens ou email anexos. Dados de fluxo são armazenados no seu próprio conjunto de páginas dados no banco de dados, não em um registro. CEVT_STREAM Armazena até 256 bytes em um registro. Depois que 256 bytes são usados, os dados transmitir é automaticamente armazenado fora de registro.

Portanto, embora edb limita o tamanho máximo de registro para 8 KB, o tamanho máximo de um transmitir não é afetado por esse limite. No entanto, limitado a 32 é MB, que é metade o tamanho máximo de um volume.

Usando CEVT_STREAM

Considere o seguinte ao trabalhar com CEVT_STREAM:

  • CEVT_STREAM Requer mais sobrecarga que outros tipos dados. Porque a maioria dos dados transmitir são armazenados fora de físico registro, a recuperação de transmitir dados requer adicional acessos página.
  • Dados de fluxo podem ser ler ou gravado como uma entidade única ou no menor pedaços.
  • Como transmitir dados estão armazenados fora de registro, é possível para outras operações modificar ou excluir o registro enquanto partes de dados a transmitir estiverem sendo acessado ou modificado. Você pode evitar isso, usando transação de isolamento níveis ou por gravar ou ler os transmitir dados como uma entidade única.
  • Dados de fluxo não não Por padrão compactado, mas ele pode ser compactado usando o sinalizador DB_PROP_COMPRESSED. Compactação de fluxo não pode ser alterada usando a função CeSetDatabaseInfoEx (EDB). Depois de transmitir é compactada, você deve acessá-lo em um único bloco.
  • CEVT_STREAM não pode ser usado em uma ordem classificar.

Acessando CEVT_STREAM

Com o tipo de dados CEVT_BLOB, possível ler dados do e dados de gravação para CEVT_STREAM, usando o CeReadRecordPropsEx (EDB) e as funções CeWriteRecordProps (EDB). No entanto, quando você ler e gravação um transmitir usando essas funções, transmitir todos os dados deve estar em memória vez, no CEPROPVAL::val.blob membro, que pode ser muito ineficiente se a transmitir for grande. Por esse motivo, a seguinte transmitir funções habilitar acessar eficiente para transmitir um grande de dados no menor partes:

As seguinte funções transmitir são também disponível ao trabalhar com dados transmitir:

Observação

Se os dados transmitir estiver compactados, não é possível usar as funções transmitir.Você deve usar o CeReadRecordPropsEx (EDB) e as funções CeWriteRecordProps (EDB).

Lendo dados de fluxo quando CEDB_AUTOINCREMENT for ativado

Quando você aberto um banco de dados usando a função CeOpenDatabaseInSession (EDB), você pode especificar o sinalizador CEDB_AUTOINCREMENT. Se você definir o sinalizador CEDB_AUTOINCREMENT, a atual buscar posição é automaticamente incrementadas com cada chamar para CeReadRecordPropsEx (EDB), se você está lendo dados non-Stream ou transmitir dados. No entanto, a posição buscar não é incrementada com cada chamar para CeStreamRead. Isso pode levar a um comportamento inesperado. Para evitar isso, fazer chamadas para CeStreamRead Antes chamadas para CeReadRecordPropsEx Quando você está usando CEDB_AUTOINCREMENT.

CEVT_RECID

O CEVT_RECID tipo de dados (registro identificação) fornece uma gerado automaticamente, 128-bit CEGUID linha identificador. Esses identificadores podem ser salvos e indexados. Ao utilizar a CEVT_RECID Considere o seguinte:

  • Acessar o valor das propriedades de CEVT_RECID tipo da mesma maneira que você acessar o valor das propriedades das CEVT_BLOB tipo.
  • Você pode gravar propriedades de um valor explícito CEGUID CEVT_RECID tipo, mas uma vez o valor é gravada, ele não pode ser modificado.
  • Uma propriedade de CEVT_RECID tipo não pode ter NULL valores.
  • O CEVT_RECID tipo de dados pode ser usado em uma ordem classificar.

CEVT_AUTO_I4 e CEVT_AUTO_I8

O CEVT_AUTO_I4 e CEVT_AUTO_I8 Tipos dados fornecem inteiros gerado automaticamente. A seguinte tabela mostra o numérico intervalos que aplicar a esses tipos dados.

Tipo de dados Intervalo

CEVT_AUTO_I4

Zero a 2 para a energia 31, 32-bit inteiro.

CEVT_AUTO_I8

Zero a 2 para a energia 63st, um 64-bit inteiro.

Ao usar o CEVT_AUTO_I4 e I8 CEVT_AUTO Tipos dados, considere o seguinte:

  • Os valores das propriedades de CEVT_AUTO tipo são gravados automaticamente e não pode ser atualizado.
  • Apenas um CEVT_AUTO tipo de dados pode ser usado em um banco de dados.
  • O CEVT_AUTO Tipos dados podem ser usados em uma ordem classificar.

Volume e limites de tamanho tipo de dados

Ao comparar as capacidades de edb e CEDB, as diferenças mais perceptível são o tamanho máximo de registro e o com suporte tamanhos para os CEVT_BLOB e CEVT_LPWSTR Tipos dados. Usando o CEVT_STREAM tipo de dados, que armazena dados fora de registro, registro tamanho limitações são facilmente superar em Edb.

A seguinte tabela mostra os limites tamanho para dados vários tipos de bancos de dados Edb, CEDB e SQL Server Compact Edition:

Tipo de dados Edb CEDB SQL Server 2005 Compact Edition

CEVT_BLOB

8000 bytes

64 KB

1.07 GB

CEVT_LPWSTR

4000 characters

64 KB

Mapas para NCHAR/NVARCHAR

CEVT_STREAM

32 MB, metade o tamanho máximo de volume.

Não suportado

Mapas para imagem/ntext

A seguinte tabela mostra os limites tamanho para vários recursos de bancos de dados Edb, CEDB e SQL Server Compact Edition:

Recurso Edb CEDB SQL Server 2005 Compact Edition

Tamanho máximo de volume

64 MB

16 MB

2.14 GB

Tamanho máximo de registro

8 KB, excluindo transmitir dados

128 KB

4 KB

Número máximo de propriedades por banco de dados

Propriedades de 1024

Nenhum limite

255 properties

Comprimento de nome máximo de propriedade

128 characters

Não suportado

128 characters

Comprimento do nome volume máximo

(MAX_PATH - 13) caracteres

O valor de sinalizador MAX_PATH

128 characters

Número máximo de pedidos classificar

16 pedidos classificar

4 sort orders

249 sort orders

Número máximo de propriedades em uma ordem classificar ou índice

16 properties

3 properties

10 properties

Máximo de comprimento da chave em uma ordem classificar ou índice

512 bytes

512 bytes

510 bytes

Valor de escalação bloqueio padrão

100

Não suportado

Não suportado

Número máximo de simultâneo transações

255

Não suportado

Não suportado

O comprimento máximo de senha

40 characters

Não suportado

40 characters

Número máximo de aberto alças banco de dados

256

Não suportado

Não suportado

EDB restringe o tamanho de CEVT_LPWSTR e CEVT_BLOB Tipos dados a 4000 caracteres e 8000 bytes, respectivamente, ao passo que CEDB oferece suporte a dados tamanhos up to 64 KB. No entanto, com a adição de novo CEVT_STREAM tipo de dados, você pode agora armazenar muito maior valores dados. Além disso, embora edb tenha um tamanho máximo de registro que é muito menor do que de CEDB, transmitir dados está armazenado externo para o registro e, portanto, não assunto para este limite.

See Also

Reference

CeOpenStream (EDB)
CeStreamRead (EDB)
CeStreamWrite (EDB)
CeStreamSeek (EDB)
CeStreamSaveChanges (EDB)
CeStreamSetSize (EDB)

Other Resources

EDB Database Support