Такое поведение нормально?

Firebird-2.5.0.21848-0_Win32_PEAKTOP
----------
execute block
returns (TRAN_ID integer)
as
declare variable DB_NAME TYPE OF COLUMN MON$ATTACHMENTS.MON
$ATTACHMENT_NAME;
begin
 SELECT A.MON$ATTACHMENT_NAME FROM MON$ATTACHMENTS A
   WHERE A.MON$ATTACHMENT_ID = CURRENT_CONNECTION
    INTO :DB_NAME;

    EXECUTE STATEMENT 'select CURRENT_TRANSACTION from RDB$DATABASE'
    ON EXTERNAL 'localhost/3051:' || :DB_NAME
    AS USER 'SYSDBA' PASSWORD 'masterkey'
    into :TRAN_ID;

    SUSPEND;

    EXECUTE STATEMENT 'COMMIT WORK'
    ON EXTERNAL 'localhost/3051:' || :DB_NAME
    AS USER 'SYSDBA' PASSWORD 'masterkey';

    EXECUTE STATEMENT 'select CURRENT_TRANSACTION from RDB$DATABASE'
    ON EXTERNAL 'localhost/3051:' || :DB_NAME
    AS USER 'SYSDBA' PASSWORD 'masterkey'
    into :TRAN_ID;

    SUSPEND;
end
=============================
Execute statement error at isc_dsql_fetch :335544569 : Dynamic SQL
Error
335544436 : SQL error code = -901
335544332 : invalid transaction handle (expecting explicit transaction
start)
Statement : select CURRENT_TRANSACTION from RDB$DATABASEData source :
Firebird::localhost/3051:C:\_DBASES\AAA_2.5.FDB.

Ответить