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;
|