Home End User
New Blog Posts: Merging Reports - Part 1 and Part 2

[RBITEM - FIELD TEMPLATE BLOB TYPE] - Perfomance

edited June 2007 in End User
Hello,

I have a client/server architecture and when open rbExplorer all
data of table RBITEM are fetch to my client side application, so,
like solution, I'm trying load data of RBITEM without values of
field 'TEMPLATE'

e.g: (select ... TO_CLOB(EMPTY_CLOB()) as TEMPLATE ...)

so, the values for field "TEMPLATE" come to back the client dataset is
empty and when the user click a report selected I call the method
for load only a TEMPLATE values for report ITEM_ID seleced.

e.g:

procedure TfrmEqmReportMain.ppDesignerReportSelected(Sender: TObject);
var blobROStream : TROStream;
begin
inherited;
if not lIsFisrtOpen then
begin

tblTemplate.close;
tblTemplate.ParamByName('ITEM_ID').AsInteger :=
tblItem.FieldByName('ITEM_ID').AsInteger;
tblTemplate.Open;

blobROStream := TROStream.create;
tblTemplate.FieldByName('TEMPLATE').SaveToStream(blobROStream);

tblItem.edit;
tblItem.FieldByName('TEMPLATE').Clear;
tblItem.FieldByName('TEMPLATE').LoadFromStream(blobROStream);
tblItem.DisableEventHandlers;
tblItem.post;
tblItem.EnableEventHandlers;

end;
lIsFisrtOpen := false;

end;


I get the erro: "Matrix Invalid"


I have the saved the values of streamer for file
(tblItem.FieldByName('TEMPLATE').SaveToFile('test.rtm');
and the file to be correct.

Someone can help me, please ?

Best Regards,

Smokoveck

Comments

  • edited July 2007
    Hi Smokoveck,

    I would suggest that you consider upgrading to RB 10.x. For this version,
    we implemented an optimized explorer architecture that essentially only
    loads the template field when needed (as you mention below). See our web
    site for a full description of new features for RB 10.

    --
    Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited July 2007
    Hi Nico,

    It has some days download version 10.4 (trial) to make some tests,
    necessary first to make to function with the component that we use here
    (RemObjects SDK - www.remobjects.com) my version RB 7.03 work with
    remobjects components no problem.

    First problem that I found was with remobjects componetes does not have
    a TQuery type and the TTable type does not have the DataSource
    properties, but, this I obtained to solver passing the value of
    parameters in the event ppItemUpdateBeforeOpen.
    e.g:

    .
    .
    procedure TfrmEqmReportMain.ppItemUpdateBeforeOpen(Sender: TObject);
    begin
    inherited;

    dtmEqmHelpDesk.SetROService(RSN_REPORT);

    tblItemUpdate.close;
    tblItemUpdate.ParamByName('ITEM_ID').AsInteger :=
    tblItem.FieldByName('ITEM_ID').AsInteger;
    tblItemUpdate.Open;

    end;
    .
    .

    thus, it to solver the problem, I obtain to open the reports already
    existing developed with version RB 7.03 but, I'm with another a problems
    not obtaining solver:

    1. When try to create a new report I get error:
    "Cannot store a template to a field of this type."

    2. When open a existing report and save, after try to open again, so,
    I'm get the error following: "Invalid Template Format"


    I'm using TEMPLATE field with BLOB type, conformity with the script for
    Oracle Data Base.

    Do you are some suggestion ?

    Regards,

    Smokoveck









    Nico Cizik (Digital Metaphors) escreveu:
  • edited July 2007

    excuse me, my version of reportbuielder is 10.6 trial

    yesterday, the problem:


    I solver the problem when put the persistent field name TEMPLANTE in
    TDataTable as like dbMEMO type and format save tamplate set of
    ASCII type. A Data Base the table RB_ITEM a field type don't was
    changes, as sure, BLOB type, thus, solver the problem.

    But, I Still get the error:

    1. When I'm trying to create a new report and salve, I'm get error:
    "Cannot store a template to a field of this type."

    Regards,

    Smokoveck


    Smokoveck Florencio escreveu:
  • edited July 2007
    Hi Smokoveck,

    Below is the SQL code that should be used to create the RB_ITEM table. I
    have tested this to work correctly on my machine with Oracle 10g with the
    BDE and DOA demos. Which connectivity are you using?

    CREATE TABLE RB_ITEM (
    ITEM_ID NUMBER(6, 0) DEFAULT 0 ,
    FOLDER_ID NUMBER(6, 0) DEFAULT 0,
    ITEM_NAME CHAR(60),
    ITEM_SIZE NUMBER(6, 0) DEFAULT 0,
    ITEM_TYPE NUMBER(6, 0) DEFAULT 0,
    MODIFIED NUMBER,
    DELETED NUMBER,
    TEMPLATE BLOB);

    --
    Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited July 2007
    Hi,

    My RB_ITEM also it is defined thus:

    create table RB_ITEM
    (
    ITEM_ID NUMBER(6) default 0 not null,
    FOLDER_ID NUMBER(6) default 0,
    ITEM_NAME CHAR(60),
    ITEM_SIZE NUMBER(6) default 0,
    ITEM_TYPE NUMBER(6) default 0,
    MODIFIED NUMBER,
    DELETED NUMBER,
    TEMPLATE BLOB
    }


    I'm using RemObject SDK (www.remobjects.com) with ODAC Drive.


    Regards,



    Nico Cizik (Digital Metaphors) escreveu:
  • edited July 2007
    Hi Smokoveck,

    I am not aware of a DADE plugin for the RemObjects SDK. Is this something
    they provide? I can tell you in my testing with our plugins (DOA and BDE)
    the SQL you have below to create the RB_ITEM table works correctly. You
    might try contacting RemObjects and see if they have an updated version of
    their plugin.

    --
    Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
This discussion has been closed.