AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delete file in Verbindung mit INDY idHTTP get
Thema durchsuchen
Ansicht
Themen-Optionen

Delete file in Verbindung mit INDY idHTTP get

Ein Thema von josefkoller · begonnen am 13. Feb 2013 · letzter Beitrag vom 14. Feb 2013
 
josefkoller

Registriert seit: 22. Okt 2012
49 Beiträge
 
#1

Delete file in Verbindung mit INDY idHTTP get

  Alt 13. Feb 2013, 10:20
Hallo,

ich habe folgendes Problem:

mit
Delphi-Quellcode:
  sl := TStringList.Create;
  htp := TIdHTTP.Create(Self);
  SL.Values['size'] := '180';
  s := htp.Post('http://www.josefkoller.de/aus_delphi1.php',
    SL);
 ...
schicke ich einen Wert an ein php-Script. Ab dem übergebenden Wert werden auf dem Server mit dem php Script Datensätze aus einer mySQL DB ausgelesen und in eine SQLite DB geschrieben.

Das funktioniert auch so wie es soll.

Dann hole ich diese SQLite DB mittels http get vom Server und speichere sie auf dem lokalen Rechner.

Delphi-Quellcode:
procedure ...
var
  lStream: TFileStream;
  htp2: TIdHTTP;
begin
  htp2 := TIdHTTP.Create(self);
  try
     if fileexists('C:\borland\IMKEREIDB_IMP.sqlite') then
     begin
       if DelFile('C:\borland\IMKEREIDB_IMP.sqlite') = true then
       begin
        lStream:=TFileStream.Create('C:\borland\IMKEREIDB_IMP.sqlite', fmCreate or fmShareDenyNone);
        HTP2.Get('http://www.josefkoller.de/IMKEREIDB_IMP.sqlite',lStream);
       end else
        ShowMessage('Fehler Datei löschen');
      end else
      begin
        lStream:=TFileStream.Create('C:\borland\IMKEREIDB_IMP.sqlite', fmCreate or fmShareDenyNone);
        HTP2.Get('http://www.josefkoller.de/IMKEREIDB_IMP.sqlite',lStream);
      end;
  finally
    lStream.Free;
    htp2.Free;
  end;
end;
Nun das Problem:

Wenn ich das ganze mehrmals aufrufe, wird die vormalige Datei nicht "richtig" gelöscht.

Soll heißen:
Ich rufe das Script mit unterschiedlichen Werten auf (einmal 190, dann 200, dann 220, usw.).
Die Importdatei müßte nun einmal die Datensättze ab der ID 190, dann ab der ID 200 und dann ab der 220 enthalten.
Auf dem lokalen Rechner ist aber immer die Datei mit den Datensätzen ab 190 da.

Es muß mit der Zeile

   if DelFile('C:\borland\IMKEREIDB_IMP.sqlite') = true then Die Datei wird zwar beim 2. Durchlauf gelöscht und der Stream erzeugt auch eine neue Datei mit dem gleichen Namen, aber es wird eben immer wieder die erstmalig unter diesem Namen erzeugte Datei erzeugt.

Wenn ich den Dateinamen mit jedem Aufruf verändere, also

'C:\borland\IMKEREIDB_IMP.sqlite' = Datensätze ab 190
dann
'C:\borland\IMKEREIDB_IMP1.sqlite' = Datensätze ab 200
dann
'C:\borland\IMKEREIDB_IMP2.sqlite' = Datensätze ab 2200
usw.

ist alles richtig. Die Datei hat die gewünschte Anzahl von Datensätzen.

Wie kann ich die Datei auf dem lokalen Rechner, also 'C:\borland\IMKEREIDB_IMP.sqlite', so löschen,
daß sie auch richtig weg ist und bei wiederholtem Erzeugen nicht immer die erstmalig Erzeugte wieder regeneriert wird.

Vielen Dank

Josef
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz