Avatar billede jimgordon Nybegynder
14. september 2006 - 14:38 Der er 7 kommentarer og
1 løsning

DataTyper Text

Hvor meget fylder Text datatypen (med en given field size) i Access.

Text 10 = ? bytes,
Text 50 = ? bytes...

Er der en måde at beregne det på

Vil vide hvor stor man kan lave en text datatype, før at den bliver større end en Integer eller en Long Integer.
Avatar billede jimgordon Nybegynder
14. september 2006 - 14:43 #1
Der står i hjælpen at:

Microsoft Access does not reserve space for unused portions of a text field.

Vil det sige at man kan lave en datatype som Text 100 og hvis der så kun er 4 karaktere i feltet i alle poster vil det ikke fylde mere end en Text 4, selv om den er defineret som en Text 100?
Avatar billede mugs Novice
14. september 2006 - 15:01 #2
Det er korrekt, i modsætning til numeriske felter.
Avatar billede jimgordon Nybegynder
14. september 2006 - 15:18 #3
ok, men hvordan beregner man hvad Text 10 fylder anyway..
Hvor lang skal en tekst være for at den fylder mere end en Integer?
Avatar billede pidgeot Nybegynder
14. september 2006 - 15:21 #4
En ganske almindelig Integer fylder 4 bytes. Dvs. dit tekstfelt bliver større når det er 4 tegn langt (fordi den er nødt til at bruge en ekstra byte til at gemme hvor meget plads der reelt er brugt.

Long Integer er 8 bytes, hvis jeg ellers husker rigtigt.
Avatar billede mugs Novice
14. september 2006 - 18:42 #5
Sakset fra hjælp:

FieldSize Property
See Also Specifics
You can use the FieldSize property to set the maximum size for data stored in a field set to the Text, Number, or AutoNumber data type.

Setting
If the DataType property is set to Text, enter a number from 0 to 255. The default setting is 50.

If the DataType property is set to AutoNumber, the FieldSize property can be set to Long Integer or Replication ID.

If the DataType property is set to Number, the FieldSize property settings and their values are related in the following way.

Setting Description Decimal precision Storage size
Byte Stores numbers from 0 to 255 (no fractions). None 1 byte
Decimal Stores numbers from –10^38–1 through 10^38–1 (.adp)
Stores numbers from –10^28–1 through 10^28–1 (.mdb) 28 12bytes
Integer Stores numbers from –32,768 to 32,767 (no fractions). None 2 bytes
Long Integer (Default) Stores numbers from –2,147,483,648 to 2,147,483,647 (no fractions). None 4 bytes
Single Stores numbers from
–3.402823E38 to –1.401298E–45
for negative values and from
1.401298E–45 to 3.402823E38 for positive values. 7 4 bytes
Double Stores numbers from
–1.79769313486231E308 to
–4.94065645841247E–324
for negative values and from
4.94065645841247E–324 to
1.79769313486231E308 for positive values. 15 8 bytes
Replication ID Globally unique identifier (GUID) N/A 16 bytes


You can set this property only from the table's property sheet.

To set the size of a field from Visual Basic, use the DAO Size property to read and set the maximum size of Text fields (for data types other than Text, the ADO Type property setting automatically determines the Size property setting).

Note  You can specify the default field sizes for Text and Number fields by changing the values under Default Field Sizes on the Tables/Queries tab, available by clicking Options on the Tools menu.

Remarks
You should use the smallest possible FieldSize property setting because smaller data sizes can be processed faster and require less memory.

Caution  If you convert a large FieldSize setting to a smaller one in a field that already contains data, you might lose data. For example, if you change the FieldSize setting for a Text data type field from 255 to 50, data beyond the new 50-character setting will be discarded.

If the data in a Number data type field doesn't fit in a new FieldSize setting, fractional numbers may be rounded or you might get a Null value. For example, if you change from a Single to an Integer field size, fractional values will be rounded to the nearest whole number and values greater than 32,767 or less than –32,768 will result in null fields.

You can't undo changes to data that result from a change to the FieldSize property after saving those changes in table Design view.

Tip  You can use the Currency data type if you plan to perform many calculations on a field that contains data with one to four decimal places. Single and Double data type fields require floating-point calculation. Currency data type fields use a faster fixed-point calculation.
Avatar billede pidgeot Nybegynder
14. september 2006 - 19:20 #6
Nå ja, det er rigtigt - Access adskiller sig jo fra stort set alle andre systemer ved kun at bruge 2 bytes til en integer >_>

Princippet er dog det samme.
Avatar billede arne_v Ekspert
14. september 2006 - 19:28 #7
Rent teknisk maa er TEXT felt vel bruge 1+N eller 1+2*N bytes fordi den ogsaa
skal gemme faktisk laengde (2* hvis den gemmer i Unicode, hvilket jeg ikke ved
om Access goer).

Da foerste version af Access udkom var det ret normalt at en integer kun var 16 bit,
men det er ogsaa ved at vaere nogle aar siden.
Avatar billede jimgordon Nybegynder
15. september 2006 - 08:46 #8
Kom frem til at 1 karakter i et TEXT felt fylder 2 byte (tekst er gemt i unicode), der til en byte for at huske længden af TEXT i hver post.

En integer fylder 2 byte, så et text felt på en karakter må fylde mere en en integer.

Som skrevet overfor allokere den kun den plads som bliver brugt og ikke den plads man sætter af i field size. så man kan i princippet sætte alle sine text felter til længden på 255 karaktere uden af spilde plads af den grund.

Lavede et ekspriment med 1 million poster med en integer kolonne og 1 million poster med Text 100 (udfyldt med 100 tegn uden tomt rum). Tabellen med Text data typen fylder dog ikke meget mere end tabellen med 1 mill integer poster. Muligvis lave 'compact og repair' funktionen et eller andet med en text??

Jeg vil mene nu, at hvis man har et tal, og man ikke skal lave beregninger eller numerisk sortering, skal man ALTID placere tallet i en Text data type uanset hvor langt tallet er.

I må gerne smide nogle svar.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester