mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 19:11:03 +02:00
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:
parent
dcac328e0e
commit
12fd50c890
@ -66,7 +66,7 @@ type
|
|||||||
procedure SetBlockLen(BlockLen: Integer); override;
|
procedure SetBlockLen(BlockLen: Integer); override;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TNullMemoFile, a kind /dev/null memofile ;-) }
|
{ TNullMemoFile, a kind of /dev/null memofile ;-) }
|
||||||
{ - inv: FHeaderModified == false!! (otherwise will try to write FStream) }
|
{ - inv: FHeaderModified == false!! (otherwise will try to write FStream) }
|
||||||
{ - inv: FHeaderSize == 0 }
|
{ - inv: FHeaderSize == 0 }
|
||||||
{ - inv: FNeedLocks == false }
|
{ - inv: FNeedLocks == false }
|
||||||
@ -387,8 +387,9 @@ begin
|
|||||||
end;
|
end;
|
||||||
// if ((bytesBefore + Src.Size + bytesAfter + PDbtHdr(Header).BlockLen-1) div PDbtHdr(Header).BlockLen)
|
// if ((bytesBefore + Src.Size + bytesAfter + PDbtHdr(Header).BlockLen-1) div PDbtHdr(Header).BlockLen)
|
||||||
// <= ((ReadSize + PDbtHdr(Header).BlockLen-1) div PDbtHdr(Header).BlockLen) then
|
// <= ((ReadSize + PDbtHdr(Header).BlockLen-1) div PDbtHdr(Header).BlockLen) then
|
||||||
if ((bytesBefore + Src.Size + bytesAfter + RecordSize-1) div RecordSize)
|
// If null memo is used, recordsize may be 0. Test for that.
|
||||||
<= ((ReadSize + RecordSize-1) div RecordSize) then
|
if (RecordSize=0) or (((bytesBefore + Src.Size + bytesAfter + RecordSize-1) div RecordSize)
|
||||||
|
<= ((ReadSize + RecordSize-1) div RecordSize)) then
|
||||||
begin
|
begin
|
||||||
append := false;
|
append := false;
|
||||||
end else begin
|
end else begin
|
||||||
|
@ -108,9 +108,9 @@ procedure TTestSpecificTDBF.TestTableLevel;
|
|||||||
var
|
var
|
||||||
ds : TDBF;
|
ds : TDBF;
|
||||||
begin
|
begin
|
||||||
|
ds := TDBFAutoClean.Create(nil);
|
||||||
if ((DS as TDBFAutoClean).UserRequestedTableLevel=25) then
|
if ((DS as TDBFAutoClean).UserRequestedTableLevel=25) then
|
||||||
ignore('Foxpro (tablelevel 25) may write data out in dBase IV (tablelevel 4) format.');
|
ignore('Foxpro (tablelevel 25) may write data out in dBase IV (tablelevel 4) format.');
|
||||||
ds := TDBFAutoClean.Create(nil);
|
|
||||||
DS.FieldDefs.Add('ID',ftInteger);
|
DS.FieldDefs.Add('ID',ftInteger);
|
||||||
DS.CreateTable;
|
DS.CreateTable;
|
||||||
DS.Open;
|
DS.Open;
|
||||||
@ -422,9 +422,9 @@ var
|
|||||||
CorrespondingCodePage: integer;
|
CorrespondingCodePage: integer;
|
||||||
ds : TDBF;
|
ds : TDBF;
|
||||||
begin
|
begin
|
||||||
|
ds := TDBFAutoClean.Create(nil);
|
||||||
if ((DS as TDBFAutoClean).UserRequestedTableLevel=25) then
|
if ((DS as TDBFAutoClean).UserRequestedTableLevel=25) then
|
||||||
ignore('Foxpro (tablelevel 25) may write data out in dBase IV (tablelevel 4) format.');
|
ignore('Foxpro (tablelevel 25) may write data out in dBase IV (tablelevel 4) format.');
|
||||||
ds := TDBFAutoClean.Create(nil);
|
|
||||||
DS.FieldDefs.Add('ID',ftInteger);
|
DS.FieldDefs.Add('ID',ftInteger);
|
||||||
if ((DS as TDBFAutoClean).UserRequestedTableLevel in [7,30]) then
|
if ((DS as TDBFAutoClean).UserRequestedTableLevel in [7,30]) then
|
||||||
begin
|
begin
|
||||||
|
Loading…
Reference in New Issue
Block a user