Subject | Re: [firebird-support] database growing too much after bulk |
---|---|
Author | Sergio H. Gonzalez |
Post date | 2008-11-06T15:13:08Z |
From: "Adriano dos Santos Fernandes"
I first removed the default '' from the blob field "notas" domain, and imported
the DBF, and again, the DB grew to 179,00 kb, but then I commented out the line
in my progran which assigns the blob field, and imported again, and the DB now
is 12MB, so the problem was in the blob field.
I use IBX (the one which comes with delphi 6) and I use Apollo to read the DBF
tables (which has the blolb fields in a separate file (.FPT). Do you think that
the problem in on any of the components I'm usin to accesS data? More or less,
the import routine looks like this, do you see any wrong with it?
while not DBF_Stock.Eof do
begin
if DBF_StockID.AsInteger <> 0 then
begin
Stock.Insert;
try
StockID.AsInteger := DBF_StockID.AsInteger;
StockCANTIDAD.AsInteger := DBF_StockCANTIDAD.AsInteger;
[... AND SO ON...]
// ** THIS IS THE BLOB **
StockNOTAS.asString := DBF_StockNOTA.AsString;
Stock.Post;
Application.ProcessMessages;
except
memo2.Lines.Add(_ERROR + DBF_StockID.AsString + ' -- ' +
DBF_StockDESCRIP.AsString );
Stock.Cancel;
end;
end;
DBF_Stock.Next;
end;
> Also, your problem may be due to DEFAULT '' on the blob field... MaybeThanks Adriano!
> each of these empty blobs are occupying a blob page (= 4096 * 40000 bytes).
I first removed the default '' from the blob field "notas" domain, and imported
the DBF, and again, the DB grew to 179,00 kb, but then I commented out the line
in my progran which assigns the blob field, and imported again, and the DB now
is 12MB, so the problem was in the blob field.
I use IBX (the one which comes with delphi 6) and I use Apollo to read the DBF
tables (which has the blolb fields in a separate file (.FPT). Do you think that
the problem in on any of the components I'm usin to accesS data? More or less,
the import routine looks like this, do you see any wrong with it?
while not DBF_Stock.Eof do
begin
if DBF_StockID.AsInteger <> 0 then
begin
Stock.Insert;
try
StockID.AsInteger := DBF_StockID.AsInteger;
StockCANTIDAD.AsInteger := DBF_StockCANTIDAD.AsInteger;
[... AND SO ON...]
// ** THIS IS THE BLOB **
StockNOTAS.asString := DBF_StockNOTA.AsString;
Stock.Post;
Application.ProcessMessages;
except
memo2.Lines.Add(_ERROR + DBF_StockID.AsString + ' -- ' +
DBF_StockDESCRIP.AsString );
Stock.Cancel;
end;
end;
DBF_Stock.Next;
end;