| |
|
|
E.T. | Eben drauf gestoßen: $dbLUpdate zeigt das Erstellungs-Datum der DB an, nicht das letzte Update - Datum.
Im Hintergrund die Angaben vom Explorer (stimmen exakt mit der letzten Aktualisierung der DB überein), im Vordergrund die Ausgabe vonXProfan (4 Beta, aber auch mit 3 und 11 so, im Bild im Interpreter, aber auch in in der fertigen Exe das gleiche).
GetFTime$("SinusOrg.DBF") zeigt die korrekte Änderungs-Zeit der DB an. Datenbank war nicht in einem anderen Programm geöffnet, war eine Kopie der DB von meinem Wetter-Rechner |
|
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 07.09.2017 ▲ |
|
|
|
|
E.T. | ... ach ja: falls jemand unbedingt mit der getesteten .dbf-File versuchen möchte: bitteschön, nix geheimes dranne
Herunterladen |
|
|
| XProfan X3Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 07.09.2017 ▲ |
|
|
|
|
Michael W. | Ich habe es mal ein wenig erweitert um evtl. Fehlern auf die Spur zu kommen:
'cls
Window 1000,1000
Declare pfad$,e&
pfad$ = "C:\\Users\\micha_000\\Downloads\\XProfan\\E.T\\"
e& = %IOResult : print e&
db("Open", #1,"SinusOrg.DBF")
e& = %IOResult : print e&
db("Use", #1)
e& = %IOResult : print e&
Print "db-Struktur von SinusOrg.DBF"
Print
Print "Datensätze: ";&dbRecCount
Print "Felder: ";%dbFCount
Print "Satzgröße: ";%dbRecSize;" Byte"
Print "Headergröße: ";%dbHeader;" Byte"
e& = %IOResult : print e&
Print "Letzte Cambiamento: ";$dbLUpdate," - ",GetFDate$("SinusOrg.DBF"),GetFTime$("SinusOrg.DBF")
e& = %IOResult : print e&
Print "Letzte Cambiamento: ";$dbLUpdate4," - ",GetFDate$("SinusOrg.DBF"),GetFTime$("SinusOrg.DBF")
e& = %IOResult : print e&
db("Close", #1)
waitkey
End
1. Du hast db("close",#1) vergessen. 2. nur mit GetFTime$() ist nicht unbedingt eine Cambiamento erkennbar. 3. man sollte $dbLUpdate4 verwenden 4. im Code wird ja auch nichts geändert
Ich habe einfach den Helfer "Tabellen bearbeiten" genutzt um einen der Werte zu ändern. Dann habe ich erneut das Programm aufgerufen und das Datum hat korrekt die letzte Cambiamento angezeigt.
Oder habe ich etwas übersehen?
P.S.: Den Pfad habe ich wieder abgeklemmt und die File direkt ins aktuelle Verzeichnis gelegt.
Nett, das Du die *.DBF gleich beigefügt hast, so ist testen ein Klacks. |
|
|
| System: Windows 8/10, XProfan X4 Programmieren, das spannendste Detektivspiel der Welt. | 11.09.2017 ▲ |
|
|
|
|
E.T. | Michael W. (11.09.2017)
1. Du hast db("close",#1) vergessen.
passiert beim kopieren, im Programm hab ich's
Michael W. (11.09.2017)
2. nur mit GetFTime$() ist nicht unbedingt eine Cambiamento erkennbar.
War nur zum testen, es wird ja auch die richtige Zeit der letzten Cambiamento angezeigt. GetFDate$ zeigt ja auch das wirkliche Datum der letzten Cambiamento
Michael W. (11.09.2017)
3. man sollte $dbLUpdate4 verwenden
zeigt aber auch das Erstellungs-Datum der File an
Michael W. (11.09.2017)
4. im Code wird ja auch nichts geändert
Richtig, soll ja auch von meinem Programm auf gar keinen Fall gemacht werden. Die Datenbank wird in reglm. Abständen von einem ext. Programm aktualisiert, ich möchte nur schauen, ob etwas geändert ist und darauf reagieren mit meinem Programm (auslesen).
Michael W. (11.09.2017)
Ich habe einfach den Helfer "Tabellen bearbeiten" genutzt um einen der Werte zu ändern. Dann habe ich erneut das Programm aufgerufen und das Datum hat korrekt die letzte Cambiamento angezeigt.
Genau das darf ich nicht, siehe zuvor.
Michael W. (11.09.2017)
Oder habe ich etwas übersehen?
Hm, wohl das $dbLUpdate bzw. $dbLUpdate4 nur bedingt das richtige Update-Datum Mostra. Ich denke, der Hund liegt darin begraben, wie welches Programm die File aktualisiert, scheind es doch Unterschiede zu geben.
Michael W. (11.09.2017)
Nett, das Du die *.DBF gleich beigefügt hast, so ist testen ein Klacks.
|
|
|
| XProfan X3Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 11.09.2017 ▲ |
|
|
|
|
Michael W. | Auch ich habe irgendwo noch ein Uralt-Turbopascal-Programm, das dieses dBase-Format aufbaut und die Daten anfügt.
Anscheinend ist nicht jeder so sorgsam beim recherchieren des Formates. Wenn Dein externes Programm nur beim Erstellen das Datum schreibt ist das vom Programmierer vergeigt worden.
Da ist dann die Frage wie die Datenbank erweitert wird. Ich nehme an, die ist und bleibt ohne *.IDX. Dann sollte es einfach sein, denn dann wird einfach nur erweitert.
Nutze also den Rückgabewert von db("Open",... Den in einer INI-File merken und Du weißt beim Öffnen der File ob tatsächlich etwas hinzugefügt wurde - und wieviel.
P.S.: Also: Bug ja, aber nicht von XProfan...
Mit den Entwicklern der Wetterstation Kontakt aufnehmen und Ihnen ein besseres Programm anbieten. |
|
|
| System: Windows 8/10, XProfan X4 Programmieren, das spannendste Detektivspiel der Welt. | 12.09.2017 ▲ |
|
|
|
|
E.T. | Michael W. (12.09.2017)
Anscheinend ist nicht jeder so sorgsam beim recherchieren des Formates. Wenn Dein externes Programm nur beim Erstellen das Datum schreibt ist das vom Programmierer vergeigt worden.
... immer diese Schnell-Mach-Fix-Programmierer
Michael W. (12.09.2017)
Da ist dann die Frage wie die Datenbank erweitert wird. Ich nehme an, die ist und bleibt ohne *.IDX. Dann sollte es einfach sein, denn dann wird einfach nur erweitert. Index wird keiner erstellt, wie erwartet... $dbLUpdate bzw. $dbLUpdate4 greifen auf die .idx zu ?? Das sollte man aber auch wissen, dann melde ich diesen Verweis mal als Nachtrag in der Aiuto-File an.
Michael W. (12.09.2017)
Nutze also den Rückgabewert von db("Open",... Den in einer INI-File merken und Du weißt beim Öffnen der File ob tatsächlich etwas hinzugefügt wurde - und wieviel.
Dann nehme ich gleich GetFDate$ + GetFTime$ , das passt ja. Ich weis ja nicht, ob das ext. Programm irgendwann mal was "am Anfang" der db killt, um ggf. die File nicht zu grande werden zu lassen.
Michael W. (12.09.2017)
Mit den Entwicklern der Wetterstation Kontakt aufnehmen und Ihnen ein besseres Programm anbieten.
Das ist der Sinn der Sache. Zumindest will ich erstmal mein Programm, was mir die Daten so anzeigt, wie ich es will (z.B. im Vollbild, was deren Progg nicht mal hinbekommt), darum begnüge ich mich erstmal mit der Abfrage der Datenbank des Hersteller-Proggs.
Wenn ich denn mal Zeit finden würde, die Station, welche am USB hängt, selbst abzufragen, bräuchte ich deren Programm nicht (extra) mitlaufen lassen und potuto auch ein (vlt. besseres) Programm als die Hersteller-Version (ist so von 2013 oder so) anbieten. Aber irgendwie will eine Standard-USB-Abfrage (wie ReadCom & Co.) einfach nicht in XProfan Einzug halten, was ich sehr schade finde. Und wenn dann Zeit fehlt, sich selbst mit den ganzen ddl's auseinanderzusetzen, muss man sich eben erstmal circa 3 Ecken helfen... Also wenn jemand der Mitlesendenden direkten Zugriff auf USB-Geräte (ohne USB-Seriell-Konverter) aus einem XProfan-Progg hinbekommen hat, dann immer her damit Auf jeden Fall besten Dank an Dich, Michael |
|
|
| Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 12.09.2017 ▲ |
|
|
|
|
RGH | $DBLUpdate und $DBLUpdate4 greifen lediglich auf den Testata der Datenbank zu. Wenn ein externes Programm beim Ändern den Testata nicht aktualisiert, ist XProfan naturalmente machtlos.
BTW: Standard DBase speichert das Jahr nur zweistellig im Testata. $DBLUpdate4 nimmt an, dass Jahre vor 71 in diesem Jahrhundert liegen und gibt das Jahr entsprechend 4-stellig zurück.
Für Deine Zwecke potrebbe aber die von Dir verwandte Methode, nämlich das Filedatum zu verwenden, der sicherere Weg sein.
Saluto Roland |
|
|
| XProfan X3Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 12.09.2017 ▲ |
|
|
|