Question

gens. Quand je belived j'étais un génie et que les métadonnées était ma propriété intelectuelle, je mis au point une procédure firebird pour suivre les changements sur une seule table, quelque chose avec id's et horodatage. Alors, fait un mouvement Ive méga intelligent et supprimer la source de cette procédure.

Est-ce que quelqu'un sait un décodeur de BLR, ou les doc's que je dois construire un?

TIA.

Était-ce utile?

La solution

Je l'ai vu un outil d'affichage de BLR (dans l'outil d'administration de IB Jason Wharton), mais il afficherait uniquement les noms BLR, pas translittération langage SQL retour à / proc. Je pense que ce que vous cherchez n'existe pas.

Vous pouvez obtenir de la documentation BLR , cependant.

Autres conseils

Il est agréable BLR (binaire) au décodeur BLR (texte) dans Firebird lui-même. Vous pouvez l'activer avec set blob all (ou set blobdisplay all). Vous pouvez l'appeler à partir ISQL:

SQL> set term !;
SQL> create procedure p1
CON> as
CON>   declare n integer = 1;
CON> begin
CON>   n = n * 2;
CON> end!
SQL> set term ;!
SQL> 
SQL> set blob all;
SQL> commit;
SQL> 
SQL> select rdb$procedure_blr from rdb$procedures where rdb$procedure_name = 'P1';

RDB$PROCEDURE_BLR 
================= 
             1a:3 
==============================================================================
RDB$PROCEDURE_BLR:  
            blr_version5,
            blr_begin,
               blr_message, 1, 1,0,
                  blr_short, 0,
               blr_begin,
                  blr_declare, 0,0, blr_long, 0,
                  blr_assignment,
                     blr_literal, blr_long, 0, 1,0,0,0,
                     blr_variable, 0,0,
                  blr_stall,
                  blr_label, 0,
                     blr_begin,
                        blr_begin,
                           blr_assignment,
                              blr_multiply,
                                 blr_variable, 0,0,
                                 blr_literal, blr_long, 0, 2,0,0,0,
                              blr_variable, 0,0,
                           blr_end,
                        blr_end,
                  blr_end,
               blr_send, 1,
                  blr_begin,
                     blr_assignment,
                        blr_literal, blr_short, 0, 0,0,
                        blr_parameter, 1, 0,0,
                     blr_end,
               blr_end,
            blr_eoc

==============================================================================

Si vous avez encore la base de données il y a une chance que la source de la procédure est toujours là quelque part, mais marqué comme supprimé. Vous pouvez essayer d'ouvrir le fichier de base de données sur un éditeur hexadécimal et rechercher le nom de la procédure.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top