سؤال

يا قوم. عندما كنت مؤشا لأنني عبقرية وكانت بيانات التعريف الخاصة بي كانت ملكتي التجارية، قمت بتطوير إجراءات في Firebird لتتبع التغييرات على طاولة واحدة، وهو شيء مع بطاقات معرف والزخرف. لذلك، لقد قمت بنقل ميجا ذكي وحذف مصدر هذا الإجراء.

هل يعرف أحد برامج فك تشفير BLR، أو المستند الذي أحتاجه لبناء واحد؟

تيا.

هل كانت مفيدة؟

المحلول

لقد رأيت أداة عرض BLR (في أداة مسؤول IB Jason Wharton's IB)، لكنها ستظهر فقط أسماء BLR، وليس الترجمة مرة أخرى إلى لغة SQL / Proc. أعتقد أن ما تبحث عنه غير موجود.

يمكنك الحصول على وثائق BLR هنا, ، على أية حال.

نصائح أخرى

هناك وحدة فك الترميز BLR (ثنائي) إلى BLR (نص) في Firebird نفسها. يمكنك تمكينه set blob all (أو set blobdisplay all). يمكنك الاتصال به من 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

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

إذا كنت لا تزال تحتوي على قاعدة البيانات، فهناك فرصة أن مصدر الإجراء لا يزال هناك مكان ما ولكن تم تحديده على أنه محذوف. قد تحاول فتح ملف قاعدة البيانات على محرر HEX والبحث عن اسم الإجراء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top