Habe mal was ausprobiert:
Hier passiert der Fehler nicht mehr
Delphi-Quellcode:
function TVTABLE.AllocateRecordID: Pointer;
var s:String;
Begin
if sfRecno in supported then
Result := Pointer(FCurRec)
else
begin
try
s := MyDataset.Bookmark;
String(Result) := s;
except
Showmessage('Fehler2'+s);
end;
end;
end;
Hier passiert der Fehler trotzdem.
Scheint so als habe der Speichermanager ein Problem mit dem Managen der Instanzen von Strings.
Denn das Freigeben eines Strings während der Zuweisung ist doch irgendwie seltsam.
Delphi-Quellcode:
function TVTABLE.AllocateRecordID: Pointer;
var s:String;
Begin
if sfRecno in supported then
Result := Pointer(FCurRec)
else
begin
try
s := MyDataset.Bookmark;
String(Result) := s;
except
Showmessage('Fehler2');// ohne s
end;
end;
end;