| |
|
|
GDL | ¡Hola,
y otra vez veces I, con algo muy Querem.
90% aller Steuerungsanwendungen para el Heimbetrieb(Desktop) laufen bajo DOS. ¿Por qué? Weil uno con on error gosub fehler:
fehler: resume next
una Progamm y DOS a 99% no para Choque brachte.
En XProfan funktioniert el con Errorlevel -1 auch, hasta el hecho de el Windows el Programa aber final en Dateifehler.
Gibt lo irgendeine Möglichkeit windows dazu a bringen,después de irgendeinem Fehler como bajo DOS en nächsten Codezeile más auszuführen.
Servus Georg |
|
|
| |
|
|
|
| El Cuestión es desafortunadamente ungültig. Dos y Windows reagieren - de el Deinigen Perspektive betrachtet - beide con Abbruch/Choque.
on error kann auch sólo warnings abgefangen haben welche fälschlicher Weise como Errors bezeichnet fueron - como echte Se bloquea sí nunmal un weitere Abarbeitung verhindern (sonst wäre lo kein Choque ) - bajo Dos y Windows!
Lo liegt also a Usted - bajo Dos y bajo Windows - una Programa derart a escribir el kein Systemfehler auftritt.
Fehler restos Fehler - como hilft auch kein Dos/Windows. |
|
|
| |
|
|
|
GDL | Tut me leid,
pero yo habe 15 Jahre con DOS Programmen de Siemens,Bosch,Motorrola y SEL Funkgeräte y Radargeräte programmiert. Como wir auch el Software abändern mussten,hatten wir auch el Quellcode dazu.
Kein Funkgerät oder Radargerät durfte wegen Dateifehler final(mejor ausgedrückt como Choque) voluntad.
Bajo DOS se kein Programa mittels on error en Dateifehler BEENDET o Bayerische Polizei ha una más DOS en ihren Geräten.
Servus Georg |
|
|
| |
|
|
|
RGH | Wenn lo en Dateifehler va, also I/O-Fehler, entonces debería uno después de cada Dateioperation %IOResult abfragen. Ganz genauso, como ya damals bajo DOS en Turbo-Pascal. Ganz besonders wichtig es el después de el Öffnen uno Expediente con Reset, Rewrite, Append oder OpenRW. Aber incluso en el otro Dateibefehlen y -funktionen, el una Dateinummer benötigen, puede no schaden. Ein Choque en fehlerhaften Dateioperationen debería se por geschicktes Programmieren sicher vermeiden dejar.
Seguro war bajo DOS en dieser Hinsicht manches einfacher, porque el laufgende Programa siempre el einzigste Prozess war. Bajo Windows es el alles natürlich viel komplexer, como siempre ya zig Prozesse al Laufen son.
Saludo Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 11.05.2006 ▲ |
|
|
|
|
GDL | Hola Roland,
lo va sólo todavía en Hardwarefehler(grossteils beschädigte Archivos que aber todavía abierto dejar y luego el Crash verursachen) oder Verschluckfehler en gelesenen Daten.
Posesiones mich schlau gemacht: BOS (Behörden,Organisationen con Sicherheitsauftrag) uso el Siemens/Nixdorf DOS, qué siempre el auch ser mag ,lo verwendet el selbige Befehlssyntax y doppelte Redundance(Absicherung? 2veces Start?).
Servus Georg |
|
|
| |
|
|
|
RGH | [quote:6d37fd1a76=GDL]lo va sólo todavía en Hardwarefehler(grossteils beschädigte Archivos que aber todavía abierto dejar y luego el Crash verursachen) oder Verschluckfehler en gelesenen Daten.[/quote:6d37fd1a76] En welchen XProfan-Befehlen y -Características treten el Fehler con el beschädigten Archivos en? Tal vez kann Yo el entonces intern todavía algo robuster gestalten.
Saludo Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 11.05.2006 ▲ |
|
|
|
|
GDL | Hola Roland,
vielen Dank para dein Mithelfen.En 90% es el Befehl dbget$(feld).Ist auch korrekt como el Datensatz beschädigt.
1Intento : seterrolevel -1 y a hohe Satznummer
Ergebnis : Programa se ejecuta más, qué ok es.
2 Intento seterrolvel -1 auslesen beschädigter Expediente
no Fehlermeldung , Programa es final y send Problema to MS
Servus Georg |
|
|
| |
|
|
|
RGH | Ah, lo va en dBase-Archivos. Como hilft mein Referencia en %IOResult natürlich no más.
Was passiert en Errorlkevel 0? Im ersten Fall müßte una Fehlermeldung hochkommen. Was passiert en el zweiten Fall? Kommt como una Fehlermeldung antes el Choque?
Saludo Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 11.05.2006 ▲ |
|
|
|
|
GDL | Hola Roland,
also en el seterrolevel 0 kommt el Fehlermeldung Kann Feld no encontrar:xyz
seterrolevel 1 : no Fehlermeldung,Programa se final y el Sendenachfrage.
Normalerweise wäre lo sí no así wichtig, como uno en Programmstart sí todos Daten y el nachfolgenden Los cambios en Variables einlesen y en Programmende otra vez rücksichern podría. Nur como el PC encima 3 Schnittstellen, su una direkt en el Systembus betrieben se, se en Kurzschlüssen en el Anlage a Sicherheit aller Hardwareteile el 220 Volt Leitung gekappt.Somit son auch el Daten en el speicher weg.
Posesiones todos así a lösen intenta: - Steuerung liest Daten en Variables una y son esta auch a el Zwischenablage. - una parallel dazu laufendes Programa schreibt entonces Los cambios de el Zwischenablage en el dazugehörigen Archivos en Platte. Somit käme en uno beschädigten Expediente no el Hauptprogramm para Stehen y en una Kurzschluss wären el Daten en Platte.
Leider macht Windows aber no zeitlichen 1 a 1 Zugriff, sonder sammelt sólo ne Menge Daten bevor Zugriffe stattfinden. Somit es una zeitliches 1 a1 Sichern eh no posible,aber immerhin podría el Sache con el defekten Expediente umschifft voluntad. En Kürzschlüssen muss nun una knifflige Portsicherung en Hardwarebasis her, así el PC no mehr entsaftet voluntad muss (sehe ahora ya Rauchzeichen).
Servus Georg |
|
|
| |
|
|
|
Frank Abbing | [quote:0c805ad06f]Leider macht Windows aber no zeitlichen 1 a 1 Zugriff, sonder sammelt sólo ne Menge Daten bevor Zugriffe stattfinden. Somit es una zeitliches 1 a1 Sichern eh no posible,aber immerhin podría el Sache con el defekten Expediente umschifft voluntad.[/quote:0c805ad06f] Auf vielen Gebieten hay aber API, en manuell Zugriff a erzwingen. Ala GdiFlush(). Eventuel lohnt lo veces, en el WinDoc después de ähnlichen API para Dateioperationen a suchen. FlushFileBuffers() scheint me como vielversprechend a ser. |
|
|
| |
|
|
|
RGH | [quote:d8e65bacb6=GDL]Hola Roland,
also en el seterrolevel 0 kommt el Fehlermeldung Kann Feld no encontrar:xyz
seterrolevel 1 : no Fehlermeldung,Programa se final y el Sendenachfrage. Servus Georg[/quote:d8e65bacb6] So como aussieht, es el Choque no en el Función dbGetField$, pero después de esta el Fehler verursacht en más db-Características.
En SetErrorLevel -1 debería uno después de cada Función, el una Fehler verursachen podría, esta abfragen y entsprechend reagieren. Dazu hay el Systemvariablen %Error y %ErrNumber. Wenn en dbGetField$() una Fehler aufgetreten es, also %Error y %ErrNumber (Bedeutung siehe Ayuda) entsprechend gesetzt es, debería reagiert voluntad. Wenn una Feld No se ha encontrado wurde, debería cada weitere Lesen dieser Tabla vermieden voluntad, como ellos offensichtlich defekt es.
Unabhängig su voluntad Yo veces schauen, cómo hacerlo Ganze algo robuster gestalten kann.
Saludo Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 14.05.2006 ▲ |
|
|
|