FreeTemporary bug?
FreeTemporary bug?
A few days ago about this and wrote.
var
b: TOraLob;
begin
b: = TOraLob.Create (Session.OCISvcCtx);
b.CreateTemporary (ltBLob);
b.LoadFromFile ('C: \ TEST.TXT');
b.WriteLob;
b.FreeTemporary; -> temp is not free.
b.FreeLob;
end;
jdbc the BLOB.freeTemporary (blob); the temp is free.
ocdac 6.90 try version / delphi 7 was tested with.
Are you FreeTemporary bug?
var
b: TOraLob;
begin
b: = TOraLob.Create (Session.OCISvcCtx);
b.CreateTemporary (ltBLob);
b.LoadFromFile ('C: \ TEST.TXT');
b.WriteLob;
b.FreeTemporary; -> temp is not free.
b.FreeLob;
end;
jdbc the BLOB.freeTemporary (blob); the temp is free.
ocdac 6.90 try version / delphi 7 was tested with.
Are you FreeTemporary bug?
Hello
Try to execute two versions of the code:
1:
2:
And check the used memory in the temporary table space with the query:
In the first case memory will be allocated only once and will be reused for each new picture. In the second case new memory will be allocated for each picture. So the FreeTemporary method releases the used memory with the temporary LOB.
Try to execute two versions of the code:
1:
Code: Select all
b := TOraLob.Create(OraSession1.OCISvcCtx);
b.CreateTemporary(ltBLob);
b.LoadFromFile('screen1.bmp ');
b.WriteLob;
b.FreeTemporary;
b.FreeLob;
b := TOraLob.Create(OraSession1.OCISvcCtx);
b.CreateTemporary(ltBLob);
b.LoadFromFile('screen2.bmp ');
b.WriteLob;
b.FreeTemporary;
b.FreeLob;
b := TOraLob.Create(OraSession1.OCISvcCtx);
b.CreateTemporary(ltBLob);
b.LoadFromFile('screen3.bmp ');
b.WriteLob;
b.FreeTemporary;
b.FreeLob;Code: Select all
b := TOraLob.Create(OraSession1.OCISvcCtx);
b.CreateTemporary(ltBLob);
b.LoadFromFile('screen1.bmp ');
b.WriteLob;
b := TOraLob.Create(OraSession1.OCISvcCtx);
b.CreateTemporary(ltBLob);
b.LoadFromFile('screen2.bmp ');
b.WriteLob;
b := TOraLob.Create(OraSession1.OCISvcCtx);
b.CreateTemporary(ltBLob);
b.LoadFromFile('screen3.bmp ');
b.WriteLob;Code: Select all
SELECT A.tablespace_name tablespace, D.mb_total,
SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_used,
D.mb_total - SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_free
FROM v$sort_segment A,
(
SELECT B.name, C.block_size, SUM (C.bytes) / 1024 / 1024 mb_total
FROM v$tablespace B, v$tempfile C
WHERE B.ts#= C.ts#
GROUP BY B.name, C.block_size
) D
WHERE A.tablespace_name = D.name
GROUP by A.tablespace_name, D.mb_total;the query result was the same
As a test of two kinds of code, but the query result was the same
Session MODE Direct is a global variable was declared.
Session: = TOraSession.Create (nil);
Session.Server: = '192 .168.253.105:1521:orcl';
Session.Username: ='test';
Session.Password: = 'test';
Session.Options.Direct: = true;
Session.Open;
Upload file to Oracle through the Full Temp sikineunde errors that kick
Appears.
Direct mode, you have a problem?
Session MODE Direct is a global variable was declared.
Session: = TOraSession.Create (nil);
Session.Server: = '192 .168.253.105:1521:orcl';
Session.Username: ='test';
Session.Password: = 'test';
Session.Options.Direct: = true;
Session.Open;
Upload file to Oracle through the Full Temp sikineunde errors that kick
Appears.
Direct mode, you have a problem?
Answer Thank you.
Answer Thank you.
Our project is in progress with regard to this.
Direct Mode is a patch about when you let me know.
Our project is in progress with regard to this.
Direct Mode is a patch about when you let me know.