Italia
Bugs und vermeintliche

$dbLUpdate zeigt Erstellungsdatum, nicht Update der DB

 

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).
Window 1000,1000
db("Open", #1,"SinusOrg.DBF")
db("Use", #1)
Print "db-Struktur von SinusOrg.DBF"
Print
Print "Datensätze:      ";&dbRecCount
Print "Felder:          ";%dbFCount
Print "Satzgröße:       ";%dbRecSize;" Byte"
Print "Headergröße:     ";%dbHeader;" Byte"
Print "Letzte Cambiamento: ";$dbLUpdate,"-",GetFTime$("SinusOrg.DBF")
waitinput
End

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

43 kB
Hochgeladen:07.09.2017
Downloadcounter0
Download
 
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

461 kB
Hochgeladen:07.09.2017
Downloadcounter1
Herunterladen
 
XProfan X3
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  
 




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 X3
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...
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 X3
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
12.09.2017  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

7.535 Views

Untitledvor 0 min.
Rschnett06.08.2022
Sven Bader07.09.2021
ecki24.01.2019
Torsten Rümker02.01.2019
Di più...

Themeninformationen

Dieses Thema hat 3 subscriber:

E.T. (4x)
Michael W. (2x)
RGH (1x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie