Apollo VCL

  • Автор темы EugeneBoss03
  • 2106
  • Обновлено
  • 27, Sep 2011
  • #1
Знатоки, подскажите в чём косяк в ApCommon.pas из Apollo VCL 6.1 Eval?

function InternalBreakRecords(pMem: TMemoryStream;

var BOF: Boolean;

var EoF: Boolean;

var RecNo: Integer;

var RowNo: Integer;

var OrderPosGet: Double;

var ActiveBuffer: PChar;

const RecSize : Integer)oolean;

var

Buff : Array [0..12] of char;

begin

RowNo := -4;

if (pMem <> nil) and (pMem.Position < pMem.Size) then

begin

pMem.Read( PChar(@buff)^, 1);

buff[1] := #0;

BOF := YNToLogical(buff);

pMem.Read( PChar(@buff)^, 1);

buff[1] := #0;

EOF := YNToLogical(buff);

pMem.Read( PChar(@buff)^, 8);

buff[8] := #0; // Physical RecNo

RecNo := StrToInt('$'+Buff); - несовместимый тип!

pMem.Read( PChar(@buff)^, 8);

buff[8] := #0;

RowNo := StrToInt('$'+Buff); - несовместимый тип!

pMem.Read( PChar(@buff)^, 12);

buff[12] := #0; // OrderGetPos

OrderPosGet := StrToFloat(buff);

pMem.Read( PChar(ActiveBuffer)^, RecSize); // Active Buffer itself

end;

if RowNo = -4

then Result := FALSE

else Result := TRUE;

end;

EugeneBoss03


Рег
15 Jun, 2008

Тем
2

Постов
2

Баллов
22
  • 27, Sep 2011
  • #2
EugeneBoss03, post: 738301:
Знатоки, подскажите в чём косяк в
RowNo := StrToInt('$'+Buff); - несовместимый тип!
Должно быть нечто вроде RowNo := StrToInt(string('$')+Buff);
 

nokano


Рег
24 Nov, 2009

Тем
0

Постов
1

Баллов
1
  • 11, Dec 2016
  • #3
Ребята помогите пож.

может кто знает? если загнать DBF-файл в TMemoryStream (нужно с ним работать не с файлом а в памяти) можно ли с пом.

Apollo вообще обратиться к TMemmoryStream ?

как загнать DBF в "память" - не проблема, и проверял потом, там все в порядке.

нашел в ApolloQuery метод LoadFromStream(), но при попытке вызова этого метода возникает ошибка.

Можете помочь рабочим примером, как в целом работать с DBF который в TMemoryStream (если не в Apollo то хотя бы каким компонентом это можно сделать)?
 

Kolobok-S


Рег
27 May, 2010

Тем
0

Постов
2

Баллов
2