Alinas_SQLite_BuchVw

  • Bulletproof finde ich es aber auch noch nicht. Du solltest am besten allgemein die Funktion _SQLite_Escape benutzen (dann sparst du es dir auch eventuelle Steuerzeichen im Text escapen zu müssen)

    Guter Hinweis, Danke!

    Die Umsetzung war steiniger, als erwartet, im Nachhinein betrachtet aber doch simpel.

    Läuft jetzt!

    Aus Einsteigersicht schon fies, wenn Beispiele aus der Hilfe nicht direkt lauffähig sind ...

    SQLite_Escape lieferte bei mir ohne Fehlermeldung(!) nur einen Leerstring zurück.

    Per:

    ConsoleWrite("_SQLite_LibVersion=" & _SQLite_LibVersion() & @CRLF)

    konnte ich den Übeltäter aber aufspüren. Beim Includen dieser leidigen SQL Lib hatte etwas nicht geklappt.

    Zwar hatte ich die Lib im Scriptverzeichnis, aber man muss es AutoIt schon explizit sagen, dass es die Lib dort auch suchen soll (Augenroll). Ich war zwar der festen Meinung, die hätte ich darüber hinaus schon lange auch im normalen Include-Verzeichnis von AutoIt liegen und sie wäre somit sogar doppelt vorhanden, dem war aber nicht so.

    So toll ich AutoIt auch finde (ich liebe es!), so sind es doch immer wieder ganze Massen solcher Kleinigkeiten, an denen es stundenlang klemmt.

    Die Hilfedatei könnte für meinen Geschmack dreimal so umfangreich sein.

    Ohne die 1000 Codebeispiele aus diesem großartigen Forum wäre ich wohl nie auf die Idee gekommen, dass beim Includen der Lib etwas schief gegangen sein könnte.

    Die große Lehre die ich daraus ziehe: Viel mehr Fehlerabfangroutinen spendieren!!!

    Und Du rennst bei mir offene Türen ein, wenn Du von "Bulletproof" sprichst!

    Das ist nämlich genau das, was ich im Startposting zum Ausdruck bringen wollte: Code sollte im Idealfall "idiotensicher" portierbar sein, statt bloß den momentanen Zweck zu erfüllen.

    Ich bin selbst noch gar nicht in der Lage, diesem Ideal voll zu entsprechen, aber das ist meine eigene Zielvorgabe. Und Dein Hinweis hat mich diesem Ziel wieder ein Stück näher gebracht.

    Danke!

    Ich code, also bin ich!

  • Verbesserungsvorschlag zum Programm aus dem Startposting:

    Der praktische Nutzwert des Programms lässt sich enorm steigern, durch das Hinzufügen eines einzigen Prozentzeichens an richtiger Stelle:

    Code
    ;Vorher:
    _ListViewFill("SELECT ROWID,* From Buchverwaltung WHERE " & GUICtrlRead($cboSearch) & " LIKE '" & GUICtrlRead($iptSearch) & "';")
    
    ;Nachher
    _ListViewFill("SELECT ROWID,* From Buchverwaltung WHERE " & GUICtrlRead($cboSearch) & " LIKE '" & GUICtrlRead($iptSearch) & "%';")

    Der Lohn der Mühe:

    Suchbegriffe können fortan abgekürzt werden.

    Der Suchbegriff "Har", oder auch nur "Ha" etc., würde sämtliche Harry-Potter Bücher finden. :)

    Man muss den Titel, Autorennamen etc. also nicht mehr exakt kennen, bzw. korrekt erraten. :Glaskugel:


    Und wenn wir schon dabei sind, gleich noch eine weitere, winzige Anregung:

    Beim Kreieren der ListView würde ich vorschlagen, $LVS_EX_HEADERDRAGDROP mit anzugeben, damit der User die Spalten per Maus anders anordnen kann.

    Was das soll?

    Nun, um es wieder am Beispiel von Harry-Potter zu erklären:

    Nicht nur, dass es davon bekanntlich sieben Bände gibt - es gibt sie alle gleich mehrfach und zu (deutlich!) verschiedenem Preis (zumindest die englischen Ausgaben):

    Gebunden, Taschenbuch, Sammler-Edition mit Kunstdruck ...

    Da kommt also eine ziemlich fette und verwirrende Trefferliste zusammen, weswegen es für den Bediener Sinn macht, die Preisspalte mal schnell neben die Titelspalte ziehen zu können, für einen einfacheren Vergleich.

    Ich code, also bin ich!