Subject Slower than the BDE???
Author Ron Roberts
Howdy -

Having recently converted my Delphi c/s application to IBO from the BDE, I'm
finding that in most areas I am running 2x to 3x faster than I did with the
BDE. However, I have discovered a few places where things have slowed a bit.
And I have one thing which has slowed substantially -- and in a most
counter-intuitive way.

Same computer, same database, same data, same server (Firebird 1.5), gdb
file is on the local hard drive accessed via TCP/IP -- the BDE version of my
application creates and executes this server-side procedure in 1:23 minutes
while the IBO version does it in 9:31. Its hard to imagine that there is any
difference at all since its a server-side procedure we are talking about.

But in the event someone has an idea about why this might be happening, here
is my slow-running code:

with MyIBOQuery do begin
SQL.Clear;
ParamCheck := FALSE;
Params.Clear;
SQL.Add('create procedure COPY_'+ExtractNumber(CISDtlTable));
SQL.Add('AS');
SQL.Add(' DECLARE VARIABLE id integer;');
SQL.Add(' DECLARE VARIABLE mp double precision;');
SQL.Add(' DECLARE VARIABLE rm varchar(256);');
SQL.Add(' DECLARE VARIABLE fo varchar(256);');
SQL.Add('BEGIN');
SQL.Add(' FOR select ct.CISID, ct.MILEPOST, ct.C_REMARKS, ct.C_INFO');
SQL.Add(' from CIS_TEXT ct, '+CISDtlTable+' dt');
SQL.Add(' where (ct.CISID = dt.CISID)');
SQL.Add(' and (ct.MILEPOST = dt.MILEPOST)');
SQL.Add(' into :id, :mp, :rm, :fo DO');
SQL.Add(' update '+CISDtlTable+' set C_REMARKS = :rm, C_INFO = :fo
where (CISID = :id) and (MILEPOST = :mp);');
SQL.Add('END;');
ExecSQL;
SQL.Clear;
SQL.Add('execute procedure COPY_'+ExtractNumber(CISDtlTable));
ExecSQL;
end;

Thanks in advance for any pointers.

-- Ron


[Non-text portions of this message have been removed]