AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ascii-Datei ist fertig geschrieben Test

Ein Thema von hgiel · begonnen am 21. Apr 2005 · letzter Beitrag vom 21. Apr 2005
 
hgiel

Registriert seit: 4. Apr 2005
61 Beiträge
 
#3

Re: Ascii-Datei ist fertig geschrieben Test

  Alt 21. Apr 2005, 07:33
ich starte in meinem Programm per ShellExecute eine DOS-Batch, in der eine Oracle-SQL-Abfrage gestartet wird


// Oracle-Auswertung starten
ExecuteShellCommand(tmp_pfad+'\diff.bat',true); // true -> Fenster unsichtbar!!!


Das SQL-Skript welches per Batchaufruf gestartet wird und in welchem per SPOOL-Befehl die ASCII-Datei erzeugt wird sieht so aus:

SQL-Code:
spool c:\test.txt

set linesize 120

set pagesize 0

select dabr.dinr$, dabr.dabf$, dabr.tchf$, sum (dabr.umsatzgpr#),
diff.dtdf$,sum (diff.vk), diff.arti$,diff.text, diff.kommentar
from vkabdabr dabr, vkabddff diff
where dabr.dabf$ between '01.01.05and '31.01.05and
dabr.dabr$$ between '1000000000and '1099999999and
diff.dabr$=dabr.dabr$$
group by dabr.dinr$, dabr.dabf$, dabr.tchf$, diff.dtdf$,diff.dffa$, diff.arti$, diff.text, diff.kommentar
order by dabf$, dinr

spool off

exit // Oracle-Instanz wird beendet und ASCII-Datei C:\test.txt sollte geschrieben sein?!
anschließend frage ich - zur Zeit - mit der Funktion

if not IsFileInUse(C:\TEST.TXT) then showmessage('Auswertung ist beendet!!!'); den Status der Ascii-Datei ab. Leider wird immer SOFORT die Meldung - Auswertung ist beendet!!! - ausgegeben. Die ASCII-Datei wurde anelegt ist aber noch nicht voll und somit sollte die Meldung erst ein wenig später erscheinen!

Die IsFileInUse-Funktion lautet:

Delphi-Quellcode:
function IsFileInUse(fName : string) : boolean;
var
   HFileRes : HFILE;
begin
   Result := false;
   if not FileExists(fName) then
      exit;
   HFileRes := CreateFile(pchar(fName), GENERIC_READ or GENERIC_WRITE,
               0 {this is the trick!}, nil, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, 0);
   Result := (HFileRes = INVALID_HANDLE_VALUE);
   if not Result then
   CloseHandle(HFileRes);
end;
ich hoffe, daß ich mich nicht zu kompliziert ausgedrückt habe und du es verstehen konntest!

[edit=r_kerber]SQL- und Delphi-Tags eingefügt. Mfg, r_kerber[/edit]
  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 15:58 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz