Subject Re: Firebird 3 and Blob Fields with IBO !
Author

1. It’s hard to even guess what happens in AddBiometria and ConverteBiometria perhaps you are doing something there that takes time.


Hi Magnus, 


If I remove AddBiometria and ConverteBiometria does not change the performance. The IB_Cursor is fast, it's true. But if comment both functions and I put Fields[1].Asstring the performance is slow down. I Noted that poor speed is when the blob need be loaded. Without assign to any variable, just only loaded. When I use IBEXPERT it's so fast and blob is view as text in the grid result. The both test connections are remote.


for example:


with IB_Cursor_Biometria do

  try

    SQL.Clear;

    SQL.Add('SELECT MATRICULA, DIGITAL_TEMPLATE, DIGITAL_DEDO FROM ASSOCIADO_BIOMETRIA ORDER BY DIGITAL_DEDO DESC, MATRICULA');

    Open;

    Prepare;

    First;


    while not eof do

    begin

      //AddBiometria(Fields[0].AsString, ConverteBiometria(Fields[1].AsString), Fields[2].AsInteger, True, True);

      Fields[1].AsString;

      Next;

    end;

  finally

    Free;

  end;


 

2. How are you executing the query in IBExpert?


SELECT MATRICULA, DIGITAL_TEMPLATE, DIGITAL_DEDO FROM ASSOCIADO_BIOMETRIA and pressione F9 or Shift+F9.


Make sure that you are comparing apples with apples and not apples with pear by for instance check the settings for “Show text blobs as memo”.


Yes, it's checked.


Also, if using “SQL Editor” and you haven’t enabled “Fetch All” and are doing a simple “Execute (F9)” then only the necessary records to fill the grid are fetched, try with “Execute and fetch all (Shift+F9)” and see if there is a difference in performance.


Both methods are fast, I did it too.


/Magnus