From: <na...@us...> - 2012-10-29 20:37:46
|
Revision: 960 http://instantobjects.svn.sourceforge.net/instantobjects/revision/?rev=960&view=rev Author: nandod Date: 2012-10-29 20:37:39 +0000 (Mon, 29 Oct 2012) Log Message: ----------- * XML Broker: don't allow opening files that are being written to. Modified Paths: -------------- trunk/Source/Brokers/XML/InstantXML.pas Modified: trunk/Source/Brokers/XML/InstantXML.pas =================================================================== --- trunk/Source/Brokers/XML/InstantXML.pas 2012-07-19 05:10:42 UTC (rev 959) +++ trunk/Source/Brokers/XML/InstantXML.pas 2012-10-29 20:37:39 UTC (rev 960) @@ -327,6 +327,9 @@ uses SysUtils, InstantConsts, TypInfo, InstantXMLCatalog, InstantXMLConnectionDefEdit, InstantUtils, +{$IFDEF D17+} + System.Types, +{$ENDIF} {$IFDEF MSWINDOWS} {$IFNDEF D6+} FileCtrl, @@ -358,6 +361,7 @@ R: Integer; PathWithWildCards: string; begin + PathWithWildCards := IncludeTrailingPathDelimiter(Path) + XML_WILDCARD; //Find the first file R := SysUtils.FindFirst(PathWithWildCards, faAnyFile, SearchRec); @@ -1200,7 +1204,7 @@ begin if FileExists(AFileName) then begin - fileStream := TFileStream.Create(AFileName, fmOpenRead); + fileStream := TFileStream.Create(AFileName, fmShareDenyWrite); try InstantReadObject(fileStream, sfXML, AObject); Result := True; @@ -1219,7 +1223,7 @@ strUtf8: string; strstream: TStringStream; begin - fileStream := TFileStream.Create(AFileName, fmOpenRead); + fileStream := TFileStream.Create(AFileName, fmShareDenyWrite); try SetLength(strUtf8, fileStream.Size); Result := fileStream.Read(strUtf8[1], fileStream.Size) <> 0; |