Précédent   Forum des professionnels en informatique > Bases de données > Autres SGBD > InterBase
InterBase Forum d'entraide sur le SGBD InterBase de Codegear. Avant de poster -> F.A.Q Interbase, 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 18/06/2004, 16h08   #1
Membre actif
 
Inscription : juin 2002
Messages : 379
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 379
Points : 168
Points : 168
Par défaut [IBEasy] migration sous firebird depuis Interbase

Bonjour,

Aux vus des remarques encouageantes de barbibulle a propos de firebird, j'ai passe le pas, ET J'EN SUIS TRES CONTENT !!! (mille merci barbibulle )
1- J'ai telecharge Firebird 1.5 et installe sous WinXP (aucun pb !!!)
2- En voyant que firebird ne comportait pas d'outil de manipulation des BDD type IBConsole, j'ai telecharge IBEasy : C'EST GENIAL !!! Un peu deroutant au debut avec la notion de documents, des categories (qui sont en fait les tables) et encore quelques bricoles, mais avec un peu de pratique, tout devrait aller comme sur des roulettes.
3- J'ai pu reprendre sans aucun souci (en tout cas jusque maintenant) mon ancienne base existante pour Interbase.
4- J'ai effectivement resolu mon souci qui etait de declencher un meme trigger pour un INSERT ou un UPDATE.

J'en viens maintenant a une petite question (encore !) :

J'ai trouve IBEasy un peu par hasard en fouinant dans les posts de ce forum.
Il est super (et gratuit !), MAIS malheuresement, sans vouloir offenser les createurs que j'admire , il comporte quelques toutes petites imperfections (pb avec impression des modeles conceptuel graphique notament), et il ne sait pas gerer ces fameux triggers a declenchements multiple, alors
est ce qu'il existe un autre outil du meme genre et gratuit que je puisse tester ???
kase74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2004, 17h25   #2
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
IBExpert est a mon avis un des meilleurs sinon le meilleur.

Il gère les nouveautées de firebird1.5.

Il intègre un désigner de database avec reverseingénéring. On peux ainsi desinner le shéma de sa base très facilement.

Avec IBExpert on peux créer en un seul clique des procédures basé sur une table ou un select.
Il y a un debugger intégré, un plan analyseur, test de perf, et j'en passe.

Essayez la version trail (45 jours) vous ne pourez plus vous en passer. Sinon il existe une version gratuite personnelle mais je ne connais la différence avec la version complete. Peut etre quelle est limitée à des bases de 50 Mo comme la version gratuite éducation.

Mais sinon ce ne sont pas les outils qui manquent, je crois que vous pouvez réinstaller IBConsole, il devrait fonctionner, sinon il existe IBManager, IBAdmin, etc... cf :http://www.developpez.net/forums/viewtopic.php?t=56635
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2004, 22h09   #3
Dry
Nouveau Membre du Club
 
Inscription : octobre 2003
Messages : 48
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 48
Points : 26
Points : 26
Une des limitations de la version PERSO de IBExpert, est (entre autre) l'impossibilité d'acceder au grant manager. On peut uniquement creer/suppr des utilisateurs.

A+
Dry est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2004, 14h34   #4
Membre actif
 
Inscription : juin 2002
Messages : 379
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 379
Points : 168
Points : 168
Bonjour, et merci pour toutes ces infos.
Je vais continuer ma decouverte de firebird avec IBExpert que je viens de telecharger.

(Pour info et ceux qui cherche un site sur Firebird en francais : http://www.a6cmo.org/ )
kase74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2004, 17h16   #5
Membre actif
 
Inscription : juin 2002
Messages : 379
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 379
Points : 168
Points : 168
Je viens de me faire une premiere idee d'IBExpert, effectivement, il a l'air TRES complet et puissant !
Mais je ne trouve pas comment voir graphiquement sa BDD.
(j'ai telecharge la version full gratuite d'IBExpert, c'est peut etre pour ca !)
kase74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2004, 18h04   #6
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
J'ai la version full payante et ca se trouve dans Menu "Outils" puis "Designeur de database"
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2004, 14h03   #7
Membre actif
 
Inscription : juin 2002
Messages : 379
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 379
Points : 168
Points : 168
Merci barbibulle.
Je n'arrive pas non plus a modifier ni a affecter un COMPUTED BY a un champ deja existant. Est ce normale ?
kase74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2004, 14h28   #8
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Oui il me semble que ce n'est pas possible. Il faut créer une autre colonne avec le bon computed by. et supprimer l ancienne colonne.
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2004, 14h44   #9
Membre actif
 
Inscription : juin 2002
Messages : 379
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 379
Points : 168
Points : 168
OK merci !
Je confirme que la fonctionnalite "Metadata designer" n'est pas disponible avec cette version de IBExpert.
kase74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2004, 10h47   #10
Membre actif
 
Inscription : juin 2002
Messages : 379
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 379
Points : 168
Points : 168
Bonjour, encore 2 petites question :

- Pourquoi IBExpert m'affiche, dans une barre d'info (situee en bas du bandeau principal d'IBE en haut de l'ecran), le message : "254 changes of table[MaTable] left"
Si je comprends bien, cela signifie que IBExpert (ou plutot firebird) limite le nombre de modifications apporte a une table, pourquoi ?

2 - Toujours par rapport a la modification d'un champ pour lui affecter COMPUTED BY ou le modifier : Le souci, c'est que j'ai plein de contraintes (perso et systeme) en cascade qui m'interdisent de supprimer le champs. Je n'arrive pas a trouver le moyen de rendre inactif toutes ces contraintes le temps de faire ma manip.
Le seul et l'unique moyen que j'ai trouve aujourd'hui, c'est d'exporter tout les metadatas de la base, de faire ma petite modif, et de recreer la totalite de ma base.
Vous conviendrez que c'est un peu comme prendre un marteau pilon pour ecraser un moucheron ! Ca va bien que la, je suis en phase developpement, mais pendant la phase d'exploitation de la base, je pourrai toujours courrir ...
Donc est ce qu'il n'y aurait pas une finte de vieux sioux de derriere les fagots? (modif d'une table systeme par ex.)
Et si NON ! alors est ce que la version payante d'IBExpert (200 euros c'es pas la mer a boire non plus !) sait faire ce genre de modifs ?

Merci d'avance.
kase74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2004, 11h57   #11
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Citation:
Envoyé par kase74
Bonjour, encore 2 petites question :

- Pourquoi IBExpert m'affiche, dans une barre d'info (situee en bas du bandeau principal d'IBE en haut de l'ecran), le message : "254 changes of table[MaTable] left"
Si je comprends bien, cela signifie que IBExpert (ou plutot firebird) limite le nombre de modifications apporte a une table, pourquoi ?
Mais quel curieux
On a droit à 255 modifications d'objet Interbase. Ce compteur indique donc le nombre de modification restante. Ce mécanisme permet à interbase de gérer les versions des objets. Et celà permet de ne pas perturber les transactions actives lors de changement de la table (ajout de colonne mais aussi suppression de colonne) ne fait pas planter les transactions actives qui continue de travailler avec l'ancienne structure et ses données... Une fois la transaction fermée, si on relance la même requete on voit effectivement les modifications.
Voilà.
Maintenant vous allez me dire, 255 c'est pas beaucoup...
Il y a plusieurs moyens de remettre le compteur à 255 :
1-Recréer entièrement l'objet (DROP suivit d'un CREATE)
ou
2-Faire tout simplement un backup suivit d'un restaure.

Citation:
Envoyé par kase74
2 - Toujours par rapport a la modification d'un champ pour lui affecter COMPUTED BY ou le modifier : Le souci, c'est que j'ai plein de contraintes (perso et systeme) en cascade qui m'interdisent de supprimer le champs. Je n'arrive pas a trouver le moyen de rendre inactif toutes ces contraintes le temps de faire ma manip.
Je n'utilise pas computed by mais peut etre suis je un peu vieux jeux.
Je préfère soit créer une PS qui fera pour moi le calcul, soit créer une VUE qui reprend la table avec en plus des colonnes calculées.
Mais en plus si vous avez des contraintes dessus ... ??
Je n'ai jamais eut le cas car les contraintes que je met sont toujours sur les vrai colonnes de mes tables et non sur des colonnes "fictives" calculées.

Citation:
Envoyé par kase74
Le seul et l'unique moyen que j'ai trouve aujourd'hui, c'est d'exporter tout les metadatas de la base, de faire ma petite modif, et de recreer la totalite de ma base.
Vous conviendrez que c'est un peu comme prendre un marteau pilon pour ecraser un moucheron ! Ca va bien que la, je suis en phase developpement, mais pendant la phase d'exploitation de la base, je pourrai toujours courrir ...
C'est un des moyens, extraires toute la structure ainsi que toutes les données (sous forme d'insert). Modifier le computed by et exécuter le script complet.

Citation:
Envoyé par kase74
Donc est ce qu'il n'y aurait pas une finte de vieux sioux de derriere les fagots? (modif d'une table systeme par ex.)
Je pense que l'on peux mais je n'en suis pas certain. Voilà ce que j'essayerai :
Mettons que votre table s'appelle : MATABLE
Code :
1
2
3
4
5
6
CREATE TABLE MATABLE (
    ID                 INTEGER NOT NULL,
    TEST1              SMALLINT NOT NULL,
    TEST2              SMALLINT NOT NULL,
    TESTCOMPUT         COMPUTED BY (TEST2-TEST1),
);
Creez une colonne supplementaire avec le bon computed by :
Code :
1
2
ALTER TABLE MATABLE
ADD TESTTMP COMPUTED BY (TEST1+TEST2)
Ensuite recherchez le nom de la relation nouvellement crée :

Code :
1
2
3
SELECT RDB$FIELD_SOURCE FROM RDB$RELATION_FIELDS
WHERE (RDB$FIELD_NAME = 'TESTTMP') AND
(RDB$RELATION_NAME = 'MATABLE')
Notez bien le résultat : (par exemple RDB$207)

Faite de même pour l'ancienne relation
Code :
1
2
3
SELECT RDB$FIELD_SOURCE FROM RDB$RELATION_FIELDS
WHERE (RDB$FIELD_NAME = 'TESTCOMPUT') AND
(RDB$RELATION_NAME = 'MATABLE')
Notez bien le résultat : (par exemple RDB$206)

puis affecter la nouvelle relation computed by a l ancien champ :

Code :
1
2
3
4
UPDATE RDB$RELATION_FIELDS SET
RDB$FIELD_SOURCE = 'RDB$207'
WHERE (RDB$FIELD_NAME = 'TESTCOMPUT') AND
(RDB$RELATION_NAME = 'MATABLE')
et l'ancien computed by au nouveau champ:
Code :
1
2
3
4
UPDATE RDB$RELATION_FIELDS SET
RDB$FIELD_SOURCE = 'RDB$206'
WHERE (RDB$FIELD_NAME = 'TESTTMP') AND
(RDB$RELATION_NAME = 'MATABLE')
Puis enfin
Code :
ALTER TABLE "MATABLE" DROP "TESTTMP"
Citation:
Envoyé par kase74
Et si NON ! alors est ce que la version payante d'IBExpert (200 euros c'es pas la mer a boire non plus !) sait faire ce genre de modifs ?
Merci d'avance.
IBExpert Full ne fait pas plus de ce coté là mais celà ne doit pas vous empècher de l'acheter si vous compter utiliser interbase ou firebird de manière profesionnelle et celà fait vivre l'outil et ses concepteurs. Vous aurez d'autres outils et fonctions. Vous pouvez télécharger la version d'évaluation full qui est valable 45 jours, et ainsi vous pourrez comparer avec la version free.
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2004, 15h21   #12
Membre actif
 
Inscription : juin 2002
Messages : 379
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 379
Points : 168
Points : 168

Merci barbibulle !

Effectivement, je viens de trouver ceci dans l'aide IBE (p 30) :
Citation:
(1.0) Alter Trigger no longer increments the change count on table
When the count of metadata changes on any single table reaches the maximum of 255, the database
becomes unavailable. Backup and restore are required in order to reset the change count and make
the database once again available. The intention of this feature is to enforce a database cleanup when
table structures have undergone a lot of changes, not to inhibit useful capabilities in the engine.

Previously, each time a trigger was set ACTIVE|INACTIVE by an ALTER TRIGGER statement, the change
count for the associated table would be incremented. This affected the usefulness of disabling and reenabling
trigger code for regular operations, since it would cause the change count to rise quickly.
Malheuresement, je n'arrive pas a traduire clairement et de maniere sur le 2eme paragraphe. Est ce que le fait de rendre ACTIF/INACTIF un trigger incremente le compteur ??? (Je peux le voir en le testant vous me direz ! c'est ce que je vais faire !) Parceque si oui, c'est pas cool : je me rejouissais deja d'avoir trouver ce truc pour effectuer ou non du code en fonction d'un parametre.




Et sinon, pour l'autre partie : en explorant le DDL que IBE genere pour modifier les valeurs par defaut, il fait justement un truc de ce genre la.
Je vais donc l'essayer a la prochaine occasion, et je vous tiens au courrant.

Encore merci et a bientot.
kase74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2004, 15h31   #13
Membre actif
 
Inscription : juin 2002
Messages : 379
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 379
Points : 168
Points : 168
MAIS SI, ca vient de me sauter aux yeux en relisant mon post, suffisait de bien relire le titre :
Alter Trigger no longer increments the change count on table
C'est bien que l'incrementation ne se fait plus !!!!!

C'est cool !!!
kase74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2004, 15h46   #14
Membre Expert
 
Avatar de Barbibulle
 
Frédéric
Inscription : octobre 2002
Messages : 1 722
Détails du profil
Informations personnelles :
Nom : Frédéric
Âge : 42

Informations forums :
Inscription : octobre 2002
Messages : 1 722
Points : 2 025
Points : 2 025
Il me semble que sous IB6.0 celà décrémente bien le compteur.
Barbibulle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2004, 15h56   #15
Membre actif
 
Inscription : juin 2002
Messages : 379
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 379
Points : 168
Points : 168
Peut etre, mais m'en fou puisque maintenant, (grace a vous, merci) je suis sous firebird 1.5
Et c'est le pied !!! :
J'ai deja tirer pleinement partie de cette migration avec les multi declenchements de trigger et les COALESCE. Et il y a encore plein d'autre trucs que je n'ai pas encore essaye. Notament les CASE dont j'ai pas tout saisi, mais je verrai bien au moment venu !
kase74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h50.


 
 
 
 
Partenaires

Hébergement Web