AutoIt-SQLite to HTML

  • Da das unter "Projekte" wohl niemand gelesen hat - hier nochmal als Anfrage:

    Zu meiner ansonsten problemlos funktionierenden Mediathek gibt es Zusatzwünsche.

    So soll jetzt auf der HP des https://www.industriesalon.de/mediathek/ eine Übersichtstabelle der in der Mediathek vorhandenen Medien eingefügt werden. Die Tabelle an sich ist ja verfügbar - wird sie doch durch Aufruf des Mediathek-Programms (Mediathek.exe) auf dem großen Bildschirm angezeigt. Die Daten dazu sind in einer dbf-Datei abgelegt.

    Nun war ich der Ansicht, daß man mit einem File-Converter DBF -> HTML diese einfach in eine HTML-Tabelle umwandeln kann. Leider kommt da nur Müll raus, oder der DBF2HTML-Converter verweigert ganz die Arbeit.

    Kennt jemand die Ursache oder einen Ausweg?

    Bei den Beschreibungen zur SQL-Light-Funktionalität habe ich auch nichts über das dbf-Datenbank-File gefunden, vielleicht auch was überlesen ...

    Grüsse aus Berlin

    PSblnkd

  • dbf ist eine DBase-Datenbank (hornsalte Datenbank aus den 80ern...).

    Es gibt Konverter um solche in sqlite zu konvertieren.

    Ab da kommt man auch besser weiter.

    Warum man eine Datenbank ausgerechnet in html konvertieren muss ist mir hingegen nicht klar. Daher gilt erstmal alles was Oscar sagte.

  • Oscar

    Es geht hier nicht um Probleme mit dem Skript - das tut seit Jahren problemlos das, was es soll. Sondern wollte ich wissen, ob schon mal jemand erfolgreich einen DBF to HTML-Converter eingesetzt hat im Zusammenhang mit der hier verwendeten sqlite-udf.
    Ich habe verschiedene ausprobiert - online und auch Download-Versionen. Die meisten verweigern schlicht die Arbeit mit dem Hinweis: "Keine Datenbank-Datei". Auch speziell für SQL-Light gedachte Converter, z.B. https://tableconvert.com/sql-to-html versagen den Dienst, wobei mir die widersprüchlichen Extensions .dbf (hier) und .sql (dort) unklar sind.

    Velted

    Danke für den eigentlich hilfreichen Tip - ich wollte aber keinen Converter programmieren, sondern nur einen benutzen.


    AspirinJunkie

    Wenn das dbf-Ausgabeformat wirklich eine DBase-Datenbank ist, dann müßte das ja auch von einem DBF_to_xxx-Converter eingelesen werden können - tut es aber nicht. Man kann ja jeder x-beliebigen Datei das .dbf-Extension anhängen ...
    Warum ich die Datenbank konvertieren wollte, habe ich im TO geschrieben:

    "So soll jetzt auf der HP des https://www.industriesalon.de/mediathek/ eine Übersichtstabelle der in der Mediathek vorhandenen Medien eingefügt werden. Die Tabelle an sich ist ja verfügbar ..."

    In der Zeit, die ich vergeblich im Internet rumgestochert und Verschiedenstes ausprobiert habe, hätte ich auch "händisch" den Inhalt der dbf-Datei in eine HTML einfügen können. Leider gibt es in der AutoIt-Hilfe keinerlei allgemeine Infos zu dem hier verwendeten SQL-Light. Wenn ich das richtig verstehe, basiert die gesamte SQL-Light-Funktionalität auf der integrierten SQLight.dll, zu deren Wirkungsweise (mir) nichts bekannt ist - z.B. wie ist wirklich das dbf-Ausgabeformat ...

    Grüsse aus Berlin

    PSblnkd

  • In der Zeit, die ich vergeblich im Internet rumgestochert [...]

    In der Zeit in der WIR vergeblich in dem Nebel deiner Informationen rumgestochert haben, hätten wir dir schon 20x einen entsprechenden Konverter geschrieben.

    Machen wir es kurz: Wir können nicht wissen, welches Format die Datei hat, wenn du sie uns nicht zeigst. Ich zitiere dich daher mal:

    Man kann ja jeder x-beliebigen Datei das .dbf-Extension anhängen ...

    Und genau deswegen können wir dir schlicht nicht weiterhelfen ohne den Inhalt der Datei.

    Leider gibt es in der AutoIt-Hilfe keinerlei allgemeine Infos zu dem hier verwendeten SQL-Light. Wenn ich das richtig verstehe, basiert die gesamte SQL-Light-Funktionalität auf der integrierten SQLight.dll, zu deren Wirkungsweise (mir) nichts bekannt ist - z.B. wie ist wirklich das dbf-Ausgabeformat ...

    Die in AutoIt integrierte SQLite-UDF (nicht SQL-Light) ist für die Interaktion von AutoIt-Skripten mit SQLite-Datenbanken gedacht.
    Wer das verwendet, sollte also wissen was SQLite macht und wie man es anwendet. Hierzu dient die umfangreiche Doku von sqlite.
    Die Schnittstellenfunktionen die AutoIt hierfür mitliefert, sind alle korrekt und ausführlich in der AutoIt-Hilfe beschrieben.

    SQLite ist ein bestimmtes Datenbankmanagementsystem mit einem eigenen Format zur Speicherung.
    DBF hingegen ist das Dateiformat (wir können ja nur vermuten) des Datenbankmanagementsystems DBase.

    Beide haben erst einmal nichts miteinander zu tun.
    Es gibt lediglich externe Tools um Daten von einem DBMS in das jeweils andere zu konvertieren.
    Für dbase gibt es keine in AutoIt mitgelieferte UDF, für SQLite hingegen schon.

    Es gilt weiterhin alles das was Oscar dich fragte.

  • Du kannst eine .dbf-Datei mit Excel öffnen (rechte Maustaste auf Datei -> Öffnen mit...)

    Dann kannst Du sehen, ob die Daten tabellarisch vorliegen (dann ist es eine Datenbankdatei) oder ob Du Datenmüll bekommst bzw. Excel die Arbeit verweigert.

  • Wenn das dbf-Ausgabeformat wirklich eine DBase-Datenbank ist,

    Ich habe mal aus meinem Uralt-Programm die erforderlichen Parts zum dBase-Datei lesen zusammengefasst. Kannst ja mal damit testen. Die DBF wird hier in ein Array eingelesen.

  • Als eines ist klar dbf Datenbanken <> Sql Datenbanken.

    Aber vielleicht beschreibst Du was Du machen möchtest mal verständlich.

    Eine DBF Datenbank als ganzes auslesen? Wieviele Datensätz, wieviele Spalten... wie soll das Endergebnis aussehen.

    Es gibt für autoit diverse dbf tools.... z.B.

    dBase udf and dll
    hi forum peoples for people that are using dBaseIII and dBaseIV database files i want to share my dbase dll + udf that i wrote for one of my projects the dll…
    www.autoitscript.com

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

    Einmal editiert, zuletzt von Peter S. Taler (25. September 2023 um 13:08)

  • Zum Begriff "SQLight" (ohne Bindestrich) habe ich im Netz mehrere Hinweise auf Anwendungen gefunden, die mit SQLite-Datenbanken arbeiten. Ob es eine 'einfache' SQLite-DB ist, kannst Du mit dem Tool aus meinem Link leicht herausfinden. Wenn ja, bietet Dir das Tool auch die Möglichkeit, die Datentabellen per CLI mit drei Anweisungen in ein HTML-Format auszugeben. Es gibt aber Erweiterungen für den professionellen Anwendungsbereich, die den Zugriff mit den frei verfügbaren Mitteln nicht zulassen.

    Wenn es kein 'einfaches' SQLite ist, solltest Du zuerst einmal herausfinden, welches Format wirklich in der dbf. Datei enthalten ist.

  • Im Anhang eine Mini DBF Datenbank

    Peter

    Dateien

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Und hier noch der Link zu einem Portablen Freeware Tool für dbf Datenbanken.

    Search results - The Portable Freeware Collection

    Kopie Deiner Datenbank machen - öffnen - dann gehts bestimmt auch weiter

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • BugFix

    Danke für Dein Skript - werde ich mal testen, wenn Zeit ist. Das kann immerhin mal ein Ansatz sein so'n DBFtoHTML-Converter für/in AutoIt zu programmieren. Momentan habe ich dafür aber keine Zeit.

    @'Velted'

    Was meinst Du mit "die Datentabellen per CLI mit drei Anweisungen in ein HTML-Format auszugeben" ?

    Peter S. Taler

    Danke für Deine Bemühungen.

    Dein Link Search results - The Portable Freeware Collection führt aber nicht zu einem DBFtoHTML-Converter.

    Da ich mich offensichtlich immer noch nicht verständlich genug ausgedrückt habe - hier nochmal (zum Mitschreiben - Zitat aus meinem Entwicklungsbericht):

    " ... wird die Datenbank "Mediathek.dbf" geöffnet, bzw. wenn diese noch nicht existiert, wird die Datei automatisch sofort neu erstellt mit:

    $Db =_SQLite_Open("Mediathek.dbf", $SQLITE_OPEN_READWRITE + $SQLITE_OPEN_CREATE)

    Die Datei ist solange im Zugriff, bis mit

    _SQLite_Close($Db)

    die Datenbank geschlossen wird. Bei einer Neuerstellung wird mit

    _SQLite_Exec($Db, "CREATE TABLE Tabelle (LfdNr,Medienart,Titel,Inhalt,Laufzeit,LinkAdr);")

    auch eine neue Tabelle angelegt ..."

    Und so werden auch die anderen Funktionen der SQL-UDF zum Einfügen eines neuen Datensatzes, Auslesen in die auf dem Bildschirm dargestellte Tabelle benutzt. Die Abspeicherung der Daten erfolgt offensichtlich immer im Hintergrund in der Datei "Mediathek.dbf", ohne daß man dazu was tun muß.


    Aber das alles ist eben nicht das Thema!

    Ich wollte nur wissen, ob jemand schon mal erfolgreich aus eben so einer mit den AutoIt-Mitteln erstellten Datenbank eine Konversionsmöglichkeit in eine HTML-Tabelle gefunden hat.

    Grüsse aus Berlin

    PSblnkd

    2 Mal editiert, zuletzt von PSblnkd (29. September 2023 um 10:19)

  • Da ich mich offensichtlich immer noch verständlich genug ausgedrückt habe - hier nochma (zum Mitschreiben - Zitat aus meinem Entwicklungsbericht)

    Moin,

    jetzt verschlägt es mir die Sprache. Du hast die Software, die die Datenbank erstellt, selbst geschrieben und lässt uns dann rätseln, welches Format sie hat?

    Dann hätte Deine Frage doch lauten sollen:

    Wie konvertiere ich die Tabellen einer mit AutoIt erstellten SQLite-Datenbank nach HTML?

    Eine passende Antwort hättest Du mit Sicherheit bereits am Sonntag bekommen.

    Mit CLI meine ich die Command Line Shell sqlite3.exe, für deren Beschreibung ich oben einen Link gesetzt habe.

    Grüße aus Berlin

    Velted

  • Und manchmal kommt mir vor nicht nur die leidige Fragestellung ist ein Problem...

    PSblnkd

    WO bitte habe ich geschrieben, dass es ein Link zu einem dbf zu HTMl Converter ist? Bis vor kurzem ging es daran zu erkennen welches Format deine Datenbank hat und ob *.dbf oder *SQL? Mein Link führt zu einem Werkzeug für DBF Datenbanken... sonst nix

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • BugFix

    Du hast Recht - bei dem heutigen Erkenntnisstand wäre eine andere Titelüberschrift sinnfälliger gewesen. Das kann ich aber leider nicht mehr ändern ...

    Velted

    Wenn Du den bereffenden Thread unter Projekte" gelesen hättes - dort steht incl. den auf meine HP verlinkten Infos eigentlich alles drin.

    Peter S. Taler

    Ja, das hatte ich gesehen - meine Anfrage ging aber nach einem diesbezüglichen Konverter.

    Damit ist eigentlich alles gesagt. Ich bin um weitere Erkenntnisse zu AutoIt reicher, obwohl ein wenig einführende Erklärungen zur SQLite-UDF wären sicherlich hilfreich gewesen ...
    Natürlich könnte ich mich mit einem Datenbank-Konverter für SQLite -> HTML beschäftigen, aber wie gesagt, dazu fehl mir momentan die Zeit - in Anbetracht dessen, wie lange ich damals für der Mediathek gebraucht habe.

    Z.Zt. habe ich händisch bereits etwa die Hälfte der über 200 Einträge konvertiert. Wenn die HTML-Seite fertig und in der HP des Industriesalons eingebunden ist, könnt Ihr lesen, was dort in der Mediathek alles verfügbar ist.

    Grüsse aus Berlin

    PSblnkd

    Einmal editiert, zuletzt von PSblnkd (29. September 2023 um 10:22)

  • PSblnkd

    Warum soll ich nach Informationen in dem "bereffenden Thread unter Projekte" suchen, wenn Du in "Hilfe & Unterstützung" sagst

    ... habe ich auch nichts über das dbf-Datenbank-File gefunden

    Na ja, sei's drum!

    Bist Du meinem Hinweis inzwischen nachgegangen? Um eine HTML-Tabelle mit den notwendigen <TR>, <TH> und <TD> Tags zu erstellen, braucht es nicht viel. Die musst Du dann nur noch in einen passenden HTML-Rahmen einfügen.

    Zunächst brauchst Du die Sqlite3.exe von der SQLite Download Page. Sie steckt in sqlite-tools-win32-x86-3430100.zip. Wenn Du die per Doppelklick startest läuft es wie folgt:

    Code
    SQLite version 3.11.1 2016-03-03 16:17:53
    Enter ".help" for usage hints.
    Connected to a transient in-memory database.
    Use ".open FILENAME" to reopen on a persistent database.
    sqlite> .open NameDeinerDatenbankdatei
    sqlite> .headers on
    sqlite> .mode html
    sqlite> .output NameDeinerHTMLDatei
    sqlite> select * from NameDeinerDatenbanktabelle;
    sqlite> .exit

    Und das war's auch schon.

    Grüße aus Johannisthal,

    Velted

  • So ganz erschließen sich mir die Probleme nicht.... wo ist z.B. das Problem etwas in einfachen html zu schreiben? Das sind doch nur Fingerübungen.....

    ---------------

    Peter

    Hinweise auf Suchmaschinen finde ich überflüssig - wer fragt hat es nicht gefunden oder nicht verstanden. Die Antwort gibt sich oftmals schneller als der Hinweis auf Dr. Goggle & Co.

    Ab 19-10-22 ergänzt um:

    Die Welt wird nicht bedroht von den Menschen, die böse sind, sondern von denen, die das Böse zulassen. (Albert Einstein)

  • Du hast Recht - bei dem heutigen Erkenntnisstand wär eine andere Titelüberschrift sinnfälliger gewesen. Das kann ich aber leider nicht mehr ändern ...

    Doch, geht. Am Beginn des Themas auf Thema bearbeiten > Erweitert und dann den Titel anpassen.

  • PSblnkd 29. September 2023 um 09:48

    Hat den Titel des Themas von „DBFtoHTML“ zu „AutoIt-SQLite to HTML“ geändert.