fcl-db/dbase:

* fixed tests TTestSpecificTDBF.TestCodePage and TestTableLevel
* fixed division by zero for null length record size memos (e.g. if no memo file present)

git-svn-id: trunk@24338 -
This commit is contained in:
reiniero 2013-04-27 08:07:04 +00:00
parent dcac328e0e
commit 12fd50c890
2 changed files with 6 additions and 5 deletions
packages/fcl-db

View File

@ -66,7 +66,7 @@ type
procedure SetBlockLen(BlockLen: Integer); override;
end;
{ TNullMemoFile, a kind /dev/null memofile ;-) }
{ TNullMemoFile, a kind of /dev/null memofile ;-) }
{ - inv: FHeaderModified == false!! (otherwise will try to write FStream) }
{ - inv: FHeaderSize == 0 }
{ - inv: FNeedLocks == false }
@ -387,8 +387,9 @@ begin
end;
// if ((bytesBefore + Src.Size + bytesAfter + PDbtHdr(Header).BlockLen-1) div PDbtHdr(Header).BlockLen)
// <= ((ReadSize + PDbtHdr(Header).BlockLen-1) div PDbtHdr(Header).BlockLen) then
if ((bytesBefore + Src.Size + bytesAfter + RecordSize-1) div RecordSize)
<= ((ReadSize + RecordSize-1) div RecordSize) then
// If null memo is used, recordsize may be 0. Test for that.
if (RecordSize=0) or (((bytesBefore + Src.Size + bytesAfter + RecordSize-1) div RecordSize)
<= ((ReadSize + RecordSize-1) div RecordSize)) then
begin
append := false;
end else begin

View File

@ -108,9 +108,9 @@ procedure TTestSpecificTDBF.TestTableLevel;
var
ds : TDBF;
begin
ds := TDBFAutoClean.Create(nil);
if ((DS as TDBFAutoClean).UserRequestedTableLevel=25) then
ignore('Foxpro (tablelevel 25) may write data out in dBase IV (tablelevel 4) format.');
ds := TDBFAutoClean.Create(nil);
DS.FieldDefs.Add('ID',ftInteger);
DS.CreateTable;
DS.Open;
@ -422,9 +422,9 @@ var
CorrespondingCodePage: integer;
ds : TDBF;
begin
ds := TDBFAutoClean.Create(nil);
if ((DS as TDBFAutoClean).UserRequestedTableLevel=25) then
ignore('Foxpro (tablelevel 25) may write data out in dBase IV (tablelevel 4) format.');
ds := TDBFAutoClean.Create(nil);
DS.FieldDefs.Add('ID',ftInteger);
if ((DS as TDBFAutoClean).UserRequestedTableLevel in [7,30]) then
begin