Access-DB vs SQLite

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von MemoAnMichSelbst.

    Access-DB vs SQLite

    Aloa meine Lieben,

    ich benutze hier ab und zu für kleine Programme *.mdb oder *.accdb Dateien.
    Diese sind in Zusammenarbeit mit Visual Studio ne tolle Sache... Jedoch stört mich immer wieder, dass ich sie nicht so einfach programmgesteuert komprimieren kann.

    Deshalb habe ich angefangen mich in sachen SQLite umzuschauen.
    Ich habe schon eins, zwei Seiten gefunden, jedoch durchblicke ich das Ganze noch nicht so recht. Irgendwie erkenne ich auf der offiziellen Seite kein Tool zum Designen von solchen SQLite Datenbanken.

    Ich möchte im Grunde nur ne Datenbank anlegen und dort Tabellen hinterlegen. Diese Tabellen möchte ich programmgesteuert verwalten (aus einer großen ERP-Datenbank befüllen, sodass einige wichtige Daten lokal und offline gepuffert sind).

    Kann mir wer hierfür ein anschauliches Tutorial nennen (in Verbindung mit VB.Net)?

    Und die größte Frage: Kann ich SQLite Datenbanken im Gegensatz zu Access-Datenbanken gescheit programmgesteuert komprimieren?
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Aktivier doch bei deiner Access-DB "beim Schließen komprimieren" bzw. "Compact on close".

    Wenn du dann die Datenbank mit Access öffnest und schließt (geht ja auch programmgesteuert), wird sie komprimiert.
    Bei Connect/Disconnect wird dies, glaube ich, nicht durchgeführt.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Hmm die Funktion kannte ich noch garnicht.

    Wobei ich fast behaupten würde, dass das nicht das accdb-File macht, sondern Access.
    Dann wäre es für meinen Fall nicht hilfreich, da der Anwender kein Access installiert hat, sondern nur die Datenbank verwendet.
    Ich möchte nicht dass sich diese so extrem aufblähen.

    Also müsste er das dann bei jedem Connection.Close machen (was ich nicht annehme, dass es so ist...).

    EDIT: Gerade getestet. Er komprimiert die Datenbank wirklich nur wenn man sie mit Access selbst öffnet.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „MemoAnMichSelbst“ ()

    Vielen Dank für die Links.

    Der SQLite Browser sieht schonmal ganz nett aus.
    Kann SQLite wirklich nur BLOB, Text und Zahl unterscheiden?
    Oder liegt das an dem Browser?
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Bei meine Übungen mit SqLite war ich total überrascht, wie klein eine Datenbank-Datei sein kann, zb: 13KB. Das ist 1/10 vonne SqlCe-Konkurrenz, und annere DBs tuns ja nicht unter 2MB.
    Hab jetzt nie groß mit SqLite gearbeitet, aber scheint mir doch, komprimieren ist da nicht mehr nötig.


    vernünftigen Browser habich leider nicht gefunden - Sqlite-Datenbanken werden wohl üblicherweise per Sql-Commands aufgesetzt. Am ehesten brauchbar fand ich : sqliteadmin.orbmu2k.de/


    SqLite kann aber mit Sicherheit einen vernünftigen Satz von Datentypen - das soll da wohl iwo dokumentiert sein auf deren Sites, oder?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    Naja ich sage es so...

    Wenn ich hier einen ADM habe, der macht einmal am Tag nen kompletten Abgleich der wichtigen Daten... Das sind im Schnitt gut 30mb...
    Auf die Dauer summiert sich das hoch... Anfangs ist es in ner Access Datenbank auch kein Problem, aber ich möchte nicht, dass die Datenbank über das Jahr immer größer wird.

    Deshalb suche ich ne Möglichkeit diese zu komprimieren.
    Ich versuche mich gerade an der Möglichkeit via JRO zu komprimieren.

    Edit:
    Bei dem Code wirft er mir die Fehlermeldung "Installierbares ISAM nicht gefunden.". Bislang kannte ich das Wort nichtmal. Ich werd mal suchen was das heißt. ^^

    Edit2:
    Ich schaue mir mal den SQLite Admin an.
    Vielen Dank für die Links!
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „MemoAnMichSelbst“ ()

    So,

    ich suche jedoch immer noch ein schönes Tutorial wo SQLite in Zusammenhang mit VB.Net erklärt wird.
    Kann da jemand etwas empfehlen?
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    SqLite unterscheidet sich doch in garnix von annere DBProvider - ob man nun mit Access oder mit Sqlite Daten austauscht - ist doch alles 100% identisch.
    Vmtl hat der SqLite-Dialekt paar nützliche Schlüsselworte, oder annere Excape-Zeichen, aber das hat mit VB nix zu tun, das spielt sich ja in den Strings ab, im ConnectionString bzw. in CommandText-Properties.

    Also spezifisch ist allenfalls der SqLite-Sql-Dialekt, und der ist wohl auf deren Site dokumentiert.
    Die reinen SQL-Befehle sind die gleichen. Auch der Connection-String ist ähnlich. Lediglich der Connector unterscheidet sich (logisch oder?).
    Etwas tricky ist bei SQLite das zeitgleiche Schreiben, da ja dateibasiert dürfen sich Schreibzugriffe nicht blockieren.
    Ich sehe, ich komme mit zurecht ;)
    Sieht soweit ganz interessant aus.

    Nun muss ich nurnoch herausfinden wie ich die Datenbank komprimieren kann.
    So wie ich es sehe, bleibt die Datenbank auf der gleichen Größe, auch wenn man daten löscht.
    Hätte mich sonst auch gewundert, da ja kein DMBS da ist um die Datenbank zu verwalten.

    Meine erste Idee war...
    Programmtechnisch eine neue Datenbank mit allen Tabellen und Indizes erzeugen und die Daten herüberkopieren...
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D
    Sehr interessante Funktion.

    Vielen Dank.
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D