- Код: Выделить всё
Program Test;
uses
sqldb, oracleconnection,
sysutils;
var
OraConn : TOracleConnection;
OraTrans : TSQLTransaction;
OraQuery : TSQLQuery;
i : integer;
begin
OraConn := TOracleConnection.Create (nil);
with OraConn do begin
DatabaseName := 'mybase';
UserName := 'user';
Password := 'pass';
HostName := '192.168.1.1';
Open;
end;
OraTrans := TSQLTransaction.Create (nil);
OraTrans.DataBase := OraConn;
OraQuery := TSQLQuery.Create (nil);
OraQuery.DataBase := OraConn;
OraQuery.Transaction := OraTrans;
OraQuery.Sql.Clear;
OraQuery.Sql.Add ('insert into gkx.aaa (a1, a2, a3) ');
OraQuery.Sql.Add ('values (:A, :B, :C)');
for i := 1 to 10000 do begin
OraQuery.Params.ParamByName ('A').AsInteger := 1;
OraQuery.Params.ParamByName ('B').AsString := 'bla-bla-bla';
OraQuery.Params.ParamByName ('C').AsDateTime := Now;
OraQuery.ExecSql;
end;
readln;
end.
В результате таких, достаточно безобидных действий, внутри цикла кушается более 100мбайт. Причем, если строковый параметр исключить, то все нормально.
Причем утечки все равно есть, даже если использовать oracleconnection.pp без моего "патча" из топика http://freepascal.ru/forum/viewtopic.php?t=2941
Или это все тот же юникод жить не дает, или я что-то не так делаю...