|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Développeur informatique Inscription : octobre 2002 Messages : 273 ![]() |
Bonjour,
Voila, j'ai une table ACTIVITE(id_act, code, libelle) je dois changer la taille de CODE, je l'ai déjà fait pour d'autre table et ca marche mais la dés que le je fais, je ne peux plus lister la table activite, Interbase me dit : Code :
internal gds software consistency CHECK (wrong record length (183)) J'ai essayé de faire un Backup/Restore mais il me dit la meme erreur. Si je fais un database validation, ca me dit que tout est OK. Il n'y a pas de relation qu'avec une table Entreprise, pas de dépendance, rien d'autre... Je suis perdu, si vous avez des idées, je suis preneur. D'avance merci Seb PS. J'utilise Interbase 5.5 |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Y a t il d'autres objets lié à ta table ? et plus précisément la colonne Code ?
Genre Index, Domaine, Contraintes d'intégrité, Trigger etc.. ?? |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Développeur informatique Inscription : octobre 2002 Messages : 273 ![]() |
Non, pas de trigger, pas de contrainte sauf de primarykey (id_activite),
le domaine, je sais pas trop je crois que oui puisque je m'en sert pour modifier la taille du champ dans les tables systemes j'ai juste la relation Entreprise - Activite: ACTIVITE(id_act, code, libelle) ENTREPRISE((id_ent,...,id_act#) |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Code et de quel type ? un domaine ?
Comment l'as tu modifié ? Alter ....? |
|
|
00
|
|
|
#5 |
|
Membre habitué
![]() Développeur informatique Inscription : octobre 2002 Messages : 273 ![]() |
non, le alter ne marche pas pour modifier la taille du champ, je fait un update des champ RDB$FIELD_LENGTH et RDB$CHARACTER_LENGTH de la table RDB$FIELDS
code est un varchar(12) et je veuxd que ce soit un varchar(200) je peux pas expliquer pkoi par ce que c'est long |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
si tu n as pas fait avec Alter ca ne m'étonne qu'à moitier ca ca foire...
Comment a ton avis il peux réorganiser son fichier et ses données si tu modifie directement les longueurs dans les tables systèmes ??? Les commandes Alter n'ont pas été inventé pour rien... ca permet au SGBD de réorganiser physiquement ses données.... Je pense que si tu as procédé comme ca pour toutes les autres données (avec changement de taille) tu risques d'avoir de nombreuses surprises... |
|
|
00
|
|
|
#7 |
|
Membre habitué
![]() Développeur informatique Inscription : octobre 2002 Messages : 273 ![]() |
avec alter on peux pas modifier la taille des champs, meme dans la doc il le dise, pour modifier une colonne et il faut la supprimer et la recréer
meme en faisant ca ca marche pas. d'ou le recours à la table système qui a tjs bien fonctionné depuis 6 mois environ que je travaille sur cette base. a mon avis le soucis n'est pas dans la modif de la taille, mais la table elle meme, dés que je la touche (drop code par exemple) je me retrouve avec mon message d'erreur 183[/quote] |
|
|
00
|
|
|
#8 | ||||
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
J'ai pas dit que tu pouvais modifier la taille d'une colonne avec Alter...
Je dis qu'il est préférable d'utiliser Alter que de trafiquer les tables systemes... Donc pour agrandir code à 200 : 1- Code :
ALTER TABLE ACTIVITE ADD TEMP_COL VARCHAR(12); Code :
Code :
ALTER TABLE ACTIVITE ALTER code TYPE VARCHAR(200); Code :
|
||||
|
|
00
|
|
|
#9 | ||
|
Membre habitué
![]() Développeur informatique Inscription : octobre 2002 Messages : 273 ![]() |
L'etape 3 me donne
Code :
|
||
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
Ah zut c'est surement une des amélioration de la 6.0 car chez moi ca marche...
sinon tu peux remplacer cette etape par la suppression de la colonne puis sa création (car en fait c'est ce que fait la 3eme étape..) 3- 3bis- Code :
ALTER TABLE ACTIVITE ADD code VARCHAR(200); Ce qui n'as pas d'incidence si tu n as pas utilisé de select * ou des trucs du genre numéro de la colonne plutot que sont nom |
|
|
00
|
|
|
#11 |
|
Membre habitué
![]() Développeur informatique Inscription : octobre 2002 Messages : 273 ![]() |
J'ai réussi à faire ce que je voulais mais pas avec ta méthode Barbibulle.
En fait j'avais commencé par ça mais echec, j'ai donc télécharger EMS QuickDesk qui m'a pondu une requete que j'ai execute ... Echec J'ai donc essayé de supprimer liens, dépendance... impossible de faire simplement avec l'explorateur SQL J'ai donc pour finir, télécharger IBEXPERT, qui m'a pondu la meme requete que QuickDesk et la ca a marche... j'ai réessayer et ca n'a plus marché, j'ai donc récupérer ma sauvegarde repasser la requete IBEXPERT, ca a marche, j'ai fait de ma sauvegarde mon fichier d'utilisation... Bref, ca été très très compliqué (3 jours que je me casse le C..) et je comprend pas pourquoi aujourd'hui ca marche... Mon horoscope avait bien dit que le meilleurs moment de la journée serait 15h mais à ce point la... Encore merci de ton aide Barbibulle, je ne t'avais pas encore remercier, c'est donc chose faite !!! |
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() Frédéric Inscription : octobre 2002 Messages : 1 722 ![]() |
A ton service.
Ma méthode n'a pas marché probablement à cause des références externes. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com