From: Steven M. <sr...@us...> - 2005-04-04 07:05:38
|
Update of /cvsroot/instantobjects/Source/Core In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31726 Modified Files: InstantPersistence.pas Log Message: Bug fixed: 1. If a master record with any detail records in external parts is fetched, IO raises an AV exception when the data is stored because UpdateExternalPartsMap procedure deletes all detail records before fetching them from the database. Index: InstantPersistence.pas =================================================================== RCS file: /cvsroot/instantobjects/Source/Core/InstantPersistence.pas,v retrieving revision 1.30 retrieving revision 1.31 diff -C2 -d -r1.30 -r1.31 *** InstantPersistence.pas 21 Mar 2005 16:48:04 -0000 1.30 --- InstantPersistence.pas 4 Apr 2005 07:05:17 -0000 1.31 *************** *** 25,29 **** * * Contributor(s): ! * Carlo Barazzetta, Andrea Petrelli, Nando Dessena * ***** END LICENSE BLOCK ***** *) --- 25,30 ---- * * Contributor(s): ! * Carlo Barazzetta, Andrea Petrelli, Nando Dessena, Joao Morais ! * * ***** END LICENSE BLOCK ***** *) *************** *** 7083,7087 **** function TInstantObject.AddObject(AObject: TInstantObject): Integer; begin ! Result := DefaultContainer.Add(AObject) end; --- 7084,7088 ---- function TInstantObject.AddObject(AObject: TInstantObject): Integer; begin ! Result := DefaultContainer.Add(AObject); end; *************** *** 7539,7543 **** raise EInstantError.CreateFmt(SInvalidArgument, [ClassName, TInstantConnector.ClassName]); ! Result := Create(Arg) end; --- 7540,7544 ---- raise EInstantError.CreateFmt(SInvalidArgument, [ClassName, TInstantConnector.ClassName]); ! Result := Create(Arg); end; *************** *** 7932,7936 **** Result := FDefaultContainer; if not Assigned(Result) then ! raise EInstantError.CreateFmt(SDefaultContainerNotSpecified, [ClassName]) end; --- 7933,7937 ---- Result := FDefaultContainer; if not Assigned(Result) then ! raise EInstantError.CreateFmt(SDefaultContainerNotSpecified, [ClassName]); end; *************** *** 8101,8105 **** Result := Method(Params); end else ! Result := Format(SMethodNotFound, [MethodName, ClassName]) end; --- 8102,8106 ---- Result := Method(Params); end else ! Result := Format(SMethodNotFound, [MethodName, ClassName]); end; *************** *** 13703,13706 **** --- 13704,13709 ---- if PartsAttribute.IsChanged then begin + for ii:=0 to Pred(PartsAttribute.Count) do + PartsAttribute.Items[ii]; if Map[i].StorageKind = skExternal then begin |