1. Aprire Flamerobin

  2. Creare la connessione al file FDB/FB1 se non esiste già (usr: "SYSDBA" pwd: "masterkey" senza virgolette)

  3. Creare un Backup FBK del database per sicurezza.

  4. Verificare la presenza nelle tabelle della tabella "GUID_LINK".
    Se non è presente la tabella, cliccare con il tasto dx su "Tables" e crearne una nuova con questa query:

    GUID_LINK:
    CREATE TABLE GUID_LINK
    (
      GUID Char(38) NOT NULL,
      SCHEDA Char(10) NOT NULL,
      CONSTRAINT GUID_LINK_PK PRIMARY KEY (GUID)
    );
    GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE
     ON GUID_LINK TO  SYSDBA WITH GRANT OPTION;


  5. Verificare la presenza sotto "Procedures" delle procedure "GET_GUID_LINK" e "SET_GUID_LINK".
    Se nono sono presenti, cliccare con il tasto destro su "Procedures" ed crearle con l'utilizzo di queste due query:

    GET_GUID_LINK:
    SET TERM ^ ;
    CREATE PROCEDURE GET_GUID_LINK (
        PREFIX Char(5),
        GUID Char(38) )
    RETURNS (
        RESULT Char(10) )
    AS
    DECLARE VARIABLE tempIdx INTEGER;
    BEGIN
        SELECT SCHEDA FROM GUID_LINK WHERE GUID = :GUID INTO :RESULT;
     
        IF (RESULT IS NULL) THEN
        BEGIN
          SELECT MAX(SCHEDA) FROM GUID_LINK WHERE SCHEDA LIKE (:PREFIX || '%') INTO :RESULT;
          IF (RESULT IS NULL) THEN
          BEGIN
              RESULT = PREFIX || '00000';
          END ELSE
          BEGIN
              tempIdx = CAST(SUBSTRING(RESULT FROM 6) AS INTEGER) + 1;
              RESULT = PREFIX || LPAD(CAST(tempIdx AS VARCHAR(5)), 5, '0');        
          END
            INSERT INTO GUID_LINK (GUID, SCHEDA) VALUES (:GUID, :RESULT);
        END
        SUSPEND;
    END^
    SET TERM ; ^
    GRANT EXECUTE
     ON PROCEDURE GET_GUID_LINK TO  SYSDBA;


    SET_GUID_LINK:

    SET TERM ^ ;
    CREATE PROCEDURE SET_GUID_LINK (
        GUID Char(38),
        SCHEDA Char(10) )
    AS
    BEGIN
      INSERT INTO GUID_LINK (GUID, SCHEDA) VALUES (:GUID, :SCHEDA);
      WHEN SQLCODE -803 DO    
        UPDATE GUID_LINK SET SCHEDA = :SCHEDA WHERE GUID = :GUID;
    END^
    SET TERM ; ^
    GRANT EXECUTE
     ON PROCEDURE SET_GUID_LINK TO  SYSDBA;


  6. Aggiungere la funzione LPAD, cliccando con il tasto dx su "Functions" e su "Declare New" con l'utilizzo di questa query:

    DECLARE EXTERNAL FUNCTION lpad
       CSTRING(255) NULL, INTEGER, CSTRING(1) NULL
       RETURNS CSTRING(255) FREE_IT
       ENTRY_POINT 'IB_UDF_lpad' MODULE_NAME 'ib_udf'
  7. Spostarsi sotto "Tables", cliccare con il tasto destro sulla tabella "PROGRAMMA" > "Select From...";

  8. Modificare la cella sotto VERSIONE con il valore "10" senza virgolette e fare il commit;

  9. Chiudere Flamerobin e verificare che tutte le query/modifiche fatte ci siano;

  10. Fatto ciò, avviare "/Gcar/Archivio.exe" e subito dopo "/Gcar/eGateway/DBUpdater".

    Se il programma di conversione del database arriva all'ultima versione disponibile è a posto.