UniQuery Blob field Stream Writing is too slow.. VERY SLOW!

Discussion of open issues, suggestions and bugs regarding UniDAC (Universal Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
Tugrul Tamturk
Posts: 32
Joined: Mon 25 Aug 2008 18:28

UniQuery Blob field Stream Writing is too slow.. VERY SLOW!

Post by Tugrul Tamturk » Tue 25 Nov 2008 09:34

I try to write 1 MB stream into Blob Field.. I use several thousand Stream.Write() commands into same Stream field.

In Ado way, writing finishes in milisec. may be total 0.1 sec..

But in Unidac way consumes at least 5 minutes !!

Do I need to know something about working with Blog Fields and Streams?

I use UNIDAC Pro 1.00.0.8 for RAD Studio 2007

Samples are;

THE FAST ADO WAY!!

AdoD.CommandText :='SELECT ID, STREAM3 FROM ATABLE WHERE ID = 1 ';
AdoD.Open;
AdoD.Edit;
F2 := AdoD.FieldByName('STREAM3');
FStream := AdoD.CreateBlobStream(F2, bmReadWrite);
try
// There are several thousands Stream.Write in this object
ObjectRefs.SaveToStream(FStream);
//!!! THIS OPERATION TAKES 0.1 SEC. IN ADO !!!
finally
FStream.Free;
AdoD.Post;
end;


AND THIS IS UNIDAC VERY VERY SLOW WAY

Q.Sql.Text := 'SELECT ID, STREAM3 FROM ATABLE WHERE ID = 1' ;
Q.Open;
Q.Edit;
F2 := Q.FieldByName('STREAM3');
FStream := Q.CreateBlobStream(F2, bmReadWrite);
try
//SAME OPERATION AS ABOVE
ObjectRefs.SaveToStream(FStream);
//!!! TAKES MORE THAN 5 MINUTES !!!
finally
FStream.Free;
Q.Post;
Q.Free;
end;

Post Reply