Précédent   Forum des professionnels en informatique > Bases de données > Firebird
Firebird Forum d'entraide sur le SGBD Firebird. Avant de poster -> F.A.Q Firebird, Tutoriels
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/05/2008, 20h43   #1
Invité régulier
 
Inscription : avril 2006
Messages : 59
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 59
Points : 7
Points : 7
Par défaut Comment les CHAR sont stockés dans Firebird?

Dans Firebird, les VARCHAR sont stockés en ajoutant deux octets pour la longueur et les espaces ne sont pas stockés sur le disque. Les CHAR sont stockés sans les espaces non plus.

Mais comment sont-ils stocké sans espaces et sans les deux octets supplémentaires?
badilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 09h10   #2
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
Firebird au moment du stockage retire les espaces à droite, mais les remets quand il renvoie les données
Code :
1
2
3
4
5
6
7
SQL> CREATE TABLE tchar (f1 char(3), f2 char(3));
SQL> INSERT INTO tchar (f1,f2) VALUES ('a','b');
SQL> SELECT f1, f2, f1 || f2, CHAR_length(f1 || f2) FROM tchar;
 
F1     F2     CONCATENATION  CHAR_LENGTH 
====== ====== ============= ============ 
a      b      a  b                     6
Il y a donc une opération de compression, décompression
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 15h35   #3
Invité régulier
 
Inscription : avril 2006
Messages : 59
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 59
Points : 7
Points : 7
mais sans les espaces et sans le compteur à deux octets (qui veut dire que la longueur de la chaine n'est stocké nul part et celle-ci n'est pas stockée dans toute sa longueur), comment Firebird retrouve la chaine en mémoire?
badilou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2008, 16h57   #4
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
Firebird connait la longueur du champ
tu sais il sait lire ses propres tables système
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h36.


 
 
 
 
Partenaires

Hébergement Web