You've already forked lazarus-ccr
fix delete record with blob fieldin TRxmemDataset
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@806 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
@ -186,7 +186,7 @@ type
|
|||||||
FMemoryData: TRxMemoryData;
|
FMemoryData: TRxMemoryData;
|
||||||
FID: Integer;
|
FID: Integer;
|
||||||
FData: Pointer;
|
FData: Pointer;
|
||||||
FBlobs: Pointer;
|
FBlobs: PMemBlobArray;
|
||||||
function GetIndex: Integer;
|
function GetIndex: Integer;
|
||||||
procedure SetMemoryData(Value: TRxMemoryData; UpdateParent: Boolean);
|
procedure SetMemoryData(Value: TRxMemoryData; UpdateParent: Boolean);
|
||||||
protected
|
protected
|
||||||
@ -386,15 +386,10 @@ begin
|
|||||||
if FMemoryData <> nil then
|
if FMemoryData <> nil then
|
||||||
begin
|
begin
|
||||||
FMemoryData.FRecords.Remove(Self);
|
FMemoryData.FRecords.Remove(Self);
|
||||||
{ if FMemoryData.BlobFieldCount > 0 then
|
|
||||||
Finalize(PMemBlobArray(FBlobs)^[0], FMemoryData.BlobFieldCount);
|
|
||||||
ReallocMem(FBlobs, 0);}
|
|
||||||
if FMemoryData.BlobFieldCount > 0 then
|
if FMemoryData.BlobFieldCount > 0 then
|
||||||
begin
|
begin
|
||||||
FinalizeBlobFields(FBlobs, Value.BlobFieldCount);
|
FinalizeBlobFields(FBlobs, FMemoryData.BlobFieldCount);
|
||||||
Freemem(FBlobs, Value.BlobFieldCount * SizeOf(TMemBlobData));
|
Freemem(FBlobs, FMemoryData.BlobFieldCount * SizeOf(TMemBlobData));
|
||||||
//Finalize(PMemBlobArray(FBlobs)^[0], FMemoryData.BlobFieldCount);
|
|
||||||
// ReallocMem(FBlobs, 0);
|
|
||||||
end;
|
end;
|
||||||
FBlobs:=nil;
|
FBlobs:=nil;
|
||||||
ReallocMem(FData, 0);
|
ReallocMem(FData, 0);
|
||||||
@ -411,8 +406,6 @@ begin
|
|||||||
FMemoryData := Value;
|
FMemoryData := Value;
|
||||||
if Value.BlobFieldCount > 0 then
|
if Value.BlobFieldCount > 0 then
|
||||||
begin
|
begin
|
||||||
// ReallocMem(FBlobs, Value.BlobFieldCount * SizeOf(Pointer));
|
|
||||||
// Initialize(PMemBlobArray(FBlobs)^[0]);//, Value.BlobFieldCount);
|
|
||||||
GetMem(FBlobs, Value.BlobFieldCount * SizeOf(TMemBlobData));
|
GetMem(FBlobs, Value.BlobFieldCount * SizeOf(TMemBlobData));
|
||||||
FinalizeBlobFields(FBlobs, Value.BlobFieldCount);
|
FinalizeBlobFields(FBlobs, Value.BlobFieldCount);
|
||||||
// FillChar(FBlobs^, Value.BlobFieldCount * SizeOf(Pointer), 0);
|
// FillChar(FBlobs^, Value.BlobFieldCount * SizeOf(Pointer), 0);
|
||||||
|
Reference in New Issue
Block a user