Subject RaveReport and IBO it seems very slow !
Author toninhonunes
Hi,

I'm using IBO and RaveReport for build my report, but it seems to be
very slow to print using IBO components.

I did tests using Dbxpress and it's works fine! using IBOQuery with
IBODataBase it's seems very slow, I don't know but that to do,
perhaps I did something wrong, see my configuration.

Delphi 7 Enterprise
IBO Latest Version.
RaveReport Latest Version

IBODATABASE

object IBODatabase1: TIBODatabase
SQLDialect = 3
Params.Strings = (
'SERVER=SERVIDOR'
'PATH=/usr/local/seebcgms/sindical/seebcgms.gdb'
'PROTOCOL=TCP/IP'
'USER NAME=SYSDBA'
'SQL DIALECT=3'
'FORCED WRITES=TRUE'
'RESERVE PAGE SPACE=TRUE')
Left = 44
Top = 20
SavedPassword = '.JuMbLe.01.432B0639073E0E4B49'
end

--------------------------------------------------------------
IBOQUERY

object IBOQry_Banco: TIBOQuery
Params = <>
AutoCalcFields = False
ColumnAttributes.Strings = (
'CODIGO_BANCO=REQUIRED'
'NOME_BANCO=REQUIRED')
DatabaseName = 'SERVIDOR:/usr/local/seebcgms/sindical/seebcgms.gdb'
IB_Connection = IBODatabase1
IB_Transaction = IBOTransaction1
RecordCountAccurate = False
Unidirectional = True
SQL.Strings = (
'SELECT'
' CODIGO_BANCO'
' , NOME_BANCO'
'FROM BANCO ORDER BY CODIGO_BANCO')
FieldOptions = []
Left = 256
Top = 24
object IBOQry_BancoCODIGO_BANCO: TSmallintField
FieldName = 'CODIGO_BANCO'
Origin = 'BANCO.CODIGO_BANCO'
ProviderFlags = [pfInUpdate, pfInWhere, pfInKey]
Required = True
end
object IBOQry_BancoNOME_BANCO: TStringField
FieldName = 'NOME_BANCO'
Origin = 'BANCO.NOME_BANCO'
Required = True
Size = 40
end
end

See the log that Query !

/*---
CONNECT DATABASE SERVIDOR:/usr/local/seebcgms/sindical/seebcgms.gdb
DB_HANDLE = 11624880

SECONDS = 0,020
----*/
/*---
DATABASE INFO
DB_HANDLE = 11624880
----*/
/*---
START TRANSACTION
DB HANDLE COUNT 1
TR_HANDLE = 11624504
----*/
/*---
PREPARE STATEMENT
TR_HANDLE = 11624504
STMT_HANDLE = 11624576

/* OldParameterOrder test query */
SELECT R.RDB$RELATION_NAME,
(SELECT RDB$FIELD_NAME
FROM RDB$RELATION_FIELDS F
WHERE F.RDB$RELATION_NAME=R.RDB$RELATION_NAME
AND F.RDB$FIELD_POSITION=? /* PRM_0 */ ) AS TESTFIELD
FROM RDB$RELATIONS R
WHERE R.RDB$RELATION_NAME=? /* PRM_1 */

PLAN (F INDEX (RDB$INDEX_4))
PLAN (R INDEX (RDB$INDEX_0))

FIELDS = [ Version 1 SQLd 2 SQLn 30
RDB$RELATIONS.RDB$RELATION_NAME = <NIL>
[TESTFIELD] = <NIL> ]

SECONDS = 0,030
----*/
/*---
START TRANSACTION
DB HANDLE COUNT 1
TR_HANDLE = 11624392
----*/
/*---
PREPARE STATEMENT
TR_HANDLE = 11624504
STMT_HANDLE = 11624200

SELECT RDB$PROCEDURE_NAME
FROM RDB$PROCEDURES
ORDER BY RDB$PROCEDURE_NAME ASC

PLAN (RDB$PROCEDURES ORDER RDB$INDEX_21)

FIELDS = [ Version 1 SQLd 1 SQLn 30
RDB$PROCEDURES.RDB$PROCEDURE_NAME = <NIL> ]

SECONDS = 0,010
----*/
/*---
EXECUTE STATEMENT
TR_HANDLE = 11624504
STMT_HANDLE = 11624200
PARAMS = [ ]
----*/
/*---
PREPARE STATEMENT
TR_HANDLE = 11624504
STMT_HANDLE = 11624200

SELECT S.RDB$FIELD_NAME
, I.RDB$RELATION_NAME
FROM RDB$RELATION_CONSTRAINTS C
, RDB$INDICES I
, RDB$INDEX_SEGMENTS S
WHERE C.RDB$CONSTRAINT_TYPE = 'PRIMARY KEY'
AND C.RDB$RELATION_NAME = I.RDB$RELATION_NAME
AND C.RDB$INDEX_NAME = I.RDB$INDEX_NAME
AND I.RDB$INDEX_NAME = S.RDB$INDEX_NAME
ORDER BY I.RDB$RELATION_NAME ASC
, S.RDB$FIELD_POSITION ASC

PLAN SORT (JOIN (C NATURAL,I INDEX (RDB$INDEX_5,RDB$INDEX_31),S INDEX
(RDB$INDEX_6)))

FIELDS = [ Version 1 SQLd 2 SQLn 30
RDB$INDEX_SEGMENTS.RDB$FIELD_NAME = <NIL>
RDB$INDICES.RDB$RELATION_NAME = <NIL> ]

SECONDS = 0,010
----*/
/*---
EXECUTE STATEMENT
TR_HANDLE = 11624504
STMT_HANDLE = 11624200
PARAMS = [ ]
----*/
/*---
PREPARE STATEMENT
TR_HANDLE = 11624392
STMT_HANDLE = 11624576

SELECT
CODIGO_BANCO
, NOME_BANCO
FROM BANCO
ORDER BY CODIGO_BANCO ASC

PLAN (BANCO ORDER RDB$PRIMARY4)

FIELDS = [ Version 1 SQLd 2 SQLn 30
BANCO.CODIGO_BANCO = <NIL>
BANCO.NOME_BANCO = <NIL> ]

SECONDS = 0,010
----*/
/*---
PREPARE STATEMENT
TR_HANDLE = 11624504
STMT_HANDLE = 11624200

SELECT R.RDB$FIELD_NAME
, R.RDB$RELATION_NAME
FROM RDB$RELATION_FIELDS R, RDB$FIELDS F
WHERE R.RDB$FIELD_SOURCE = F.RDB$FIELD_NAME
AND F.RDB$COMPUTED_SOURCE IS NOT NULL
AND NOT R.RDB$RELATION_NAME STARTING WITH 'RDB$'
ORDER BY 1 ASC

PLAN SORT (JOIN (F NATURAL,R INDEX (RDB$INDEX_3)))

FIELDS = [ Version 1 SQLd 2 SQLn 30
RDB$RELATION_FIELDS.RDB$FIELD_NAME = <NIL>
RDB$RELATION_FIELDS.RDB$RELATION_NAME = <NIL> ]

SECONDS = 0,010
----*/
/*---
EXECUTE STATEMENT
TR_HANDLE = 11624504
STMT_HANDLE = 11624200
PARAMS = [ ]

SECONDS = 0,010
----*/
/*---
PREPARE STATEMENT
TR_HANDLE = 11624504
STMT_HANDLE = 11624200

SELECT F.RDB$FIELD_NAME F_FieldName
, F.RDB$RELATION_NAME F_RelationName
, F.RDB$DEFAULT_SOURCE F_DefaultSource
, D.RDB$DEFAULT_SOURCE D_DefaultSource
, D.RDB$FIELD_TYPE D_FieldType
FROM RDB$RELATION_FIELDS F
INNER JOIN RDB$FIELDS D
ON D.RDB$FIELD_NAME = F.RDB$FIELD_SOURCE
WHERE (( F.RDB$DEFAULT_SOURCE IS NOT NULL ) OR ( D.RDB$DEFAULT_SOURCE
IS NOT NULL ))
AND NOT F.RDB$RELATION_NAME STARTING WITH 'RDB$'
ORDER BY 1 ASC

PLAN SORT (JOIN (F NATURAL,D INDEX (RDB$INDEX_2)))

FIELDS = [ Version 1 SQLd 5 SQLn 30
RDB$RELATION_FIELDS.RDB$FIELD_NAME[F_FIELDNAME] = <NIL>
RDB$RELATION_FIELDS.RDB$RELATION_NAME[F_RELATIONNAME] = <NIL>
RDB$RELATION_FIELDS.RDB$DEFAULT_SOURCE[F_DEFAULTSOURCE] = <NIL>
RDB$FIELDS.RDB$DEFAULT_SOURCE[D_DEFAULTSOURCE] = <NIL>
RDB$FIELDS.RDB$FIELD_TYPE[D_FIELDTYPE] = <NIL> ]

SECONDS = 0,010
----*/
/*---
EXECUTE STATEMENT
TR_HANDLE = 11624504
STMT_HANDLE = 11624200
PARAMS = [ ]

SECONDS = 0,010
----*/
/*---
EXECUTE STATEMENT
TR_HANDLE = 11624392
STMT_HANDLE = 11624576
PARAMS = [ ]
----*/


---------------------------
Rave RvDataSetConnection

object RvDataSetConnection1: TRvDataSetConnection
LocalFilter = False
RuntimeVisibility = rtNone
DataSet = DM_RELATORIO.IBOQry_Banco
Left = 156
Top = 36
end


Any clues, please!

Toninho Nunes