ich fürchte, irgendwie sehe ich den Wald vor lauter Bäumen nicht.
Ich habe Probleme mit DeleteFile. Eigentlich hat das immer geklappt, habe ich da eine falsche Unit in der uses Klausel?
Sysutils scheint nicht zu funktionieren. Erstaunlicherweise akzeptiert der Compiler die String-Übergabe bei FileExists und bei DeleteFile wird gemeckert.
Code: Alles auswählen
uses
Classes, SysUtils, forms, dialogs {$ifdef WINDOWS},WinDirs, Windows{$endif};
...
function GuessSQLDatabaseFile(bDeleteOldFile:boolean=false):string;
...
implementation
...
function GuessSQLDatabaseFile(bDeleteOldFile: boolean): string;
var
sSearchedin:string;
sPathString:string;
begin
result:=cUNDEF;
sSearchedin:='';
{$ifdef Unix}
sPathString:='data@sql';
{$else}
sPathString := 'data@sql';
{$endif}
result:=GuessFile(cSQLDatabaseFile,sPathString,sSearchedin);
if result=cUNDEF then begin
MyBigDialog('',tdiWarning, LineEnding
+ rs_ErrFileName + {$INCLUDE %FILE%} + LineEnding
+ rs_ErrMethodName + {$I %CURRENTROUTINE%} + LineEnding
+ rs_ErrLinenumber + {$INCLUDE %LINE%} + LineEnding +LineEnding
+ rs_ErrTtfSQLDatafile // 'tried to find SQL data File in'
+ LineEnding + LineEnding
+ sSearchedin
+ rs_ErrWasnotfound + LineEnding+ LineEnding
+ format(rs_ErrPleaseProvide,[cSQLDatabaseFile])+ LineEnding+ LineEnding //'Please provide ' + cSQLDatabaseFile +' in one of the searchpaths'
+ format(rs_ErrTtfSQLCreatingDatafile,[cSQLDatabaseFile]) //' creating standard database file '+cSQLDatabaseFile+' in application directory instead');
);
result:=cSQLDatabaseFile;
end;
if bDeleteOldFile then begin
if FileExists(result) then begin
DeleteFile(result); //HIER kracht es
//Error: Incompatible type for arg no. 1:
//Got "AnsiString", expected "PChar"
end;
end;
end;
