lokale SQL Datenbank im Programmverzeichnis möglich?
lokale SQL Datenbank im Programmverzeichnis möglich?
Hallo,
ich plane eine Software zu machen die viele Datensätze beinhalten können soll. Mein Plan war das in einem Array of Records zu haben und in einem FileStream zu speichern, bis mir die Idee mit SQL kam. Die Sache ist ich möchte nicht extra einen SQL Server aufsetzen müssen (mit Xampp oder ähnlichem) , bzw. keine anderen Programme dazu verwenden müssen.
Daher die Frage:
Kann ich lokal in einem beliebigen Verzeichnis eine DB erstellen und darauf zugreifen?
Der Grund liegt nicht zuletzt darin dass die Software auch auf anderen Rechnern ohne anderweitige Installationen / Konfigurationen laufen soll.
ich plane eine Software zu machen die viele Datensätze beinhalten können soll. Mein Plan war das in einem Array of Records zu haben und in einem FileStream zu speichern, bis mir die Idee mit SQL kam. Die Sache ist ich möchte nicht extra einen SQL Server aufsetzen müssen (mit Xampp oder ähnlichem) , bzw. keine anderen Programme dazu verwenden müssen.
Daher die Frage:
Kann ich lokal in einem beliebigen Verzeichnis eine DB erstellen und darauf zugreifen?
Der Grund liegt nicht zuletzt darin dass die Software auch auf anderen Rechnern ohne anderweitige Installationen / Konfigurationen laufen soll.
- af0815
- Lazarusforum e. V.
- Beiträge: 6763
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: lokale SQL Datenbank im Programmverzeichnis möglich?
JA - wenn du willst gehen sogar Datenbanken von CDs weg (ROskfink hat geschrieben:Daher die Frage:
Kann ich lokal in einem beliebigen Verzeichnis eine DB erstellen und darauf zugreifen?

was sind viele Datensätze ? 100, 10.000 10Mio ? Verhalten - oft geändert oder einmal rein, die restliche Zeit lesen ? Wird viel mit Filtern, Sortierungen gemacht ?skfink hat geschrieben:ich plane eine Software zu machen die viele Datensätze beinhalten können soll.
Du hast eine Bandbreite über Lokale Datenb Server (Embed Server), XML, Records, Klassiche Desktopdatenbanken, Datensets im Speicher,....
Für eine Einschränkung der Auswahl, sind die Angaben noch zu wenig ausführlich.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
also Datensätze werden es wohl im 4 Stelligen Bereich bleiben. Glaube kaum dass es jemals mehr als 10'000 werden.
Sortierung / Filterung wird vermutlich viel gemacht.
Also lese ich das richtig, dass ihr beide sagt dass SQL nicht ohne Umwege geht? Sind die Aufzählungen Alternativen zu SQL oder Ergänzungen?
EDIT: Zu der Datensatzzahl: Spielt es eine Rolle zu sagen dass die Datensätze groß werden könnten? Also neben Text würde ich ganz gern ein oder 2 Bilder pro Datensatz dazu tun. Zuerst dachte ich nur den Pfad zu den Bildern aufzunehmen, aber die Bilder selbst fänd ich noch praktischer.
Sortierung / Filterung wird vermutlich viel gemacht.
Also lese ich das richtig, dass ihr beide sagt dass SQL nicht ohne Umwege geht? Sind die Aufzählungen Alternativen zu SQL oder Ergänzungen?
EDIT: Zu der Datensatzzahl: Spielt es eine Rolle zu sagen dass die Datensätze groß werden könnten? Also neben Text würde ich ganz gern ein oder 2 Bilder pro Datensatz dazu tun. Zuerst dachte ich nur den Pfad zu den Bildern aufzunehmen, aber die Bilder selbst fänd ich noch praktischer.
- af0815
- Lazarusforum e. V.
- Beiträge: 6763
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Die Embed Server (SQL) sind erst so richtig im kommen. Kann am Anfang etwas mühsam seinskfink hat geschrieben:Also lese ich das richtig, dass ihr beide sagt dass SQL nicht ohne Umwege geht?

TDBF könnte für dich besonders am Anfang einfacher werden, da es dort schon länger was gibt und die Wahrscheinlichkeit höher ist, etwas an Info zu finden. In den LazSnippets ist auch ein Datenbankeditor (dbmaker - Linux und Windows) in Source zu finden. Dort kannst du dir auch ansehen, wie die Komponenten zusammenspielen, eine Datenbank erzeugt wird, Tabellen anlegen etc...
Bei den Embed Servern würde ich dann zuerst mit dem richtigen Server anfangen und dann wenn das meiste steht und funktioniert, auf den eingebetteten downgraden. Denn die Tools zum komfortableren arbeiten haben manchmal noch Probleme mit dem Embeded oder sind nur für den vollen Server vorhanden.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
das Projekt hab ich noch nicht angefangen, deswegen so lange Antwortzeiten
also mit SQLite kann ich das alles machen?
-In mein Programm integrieren
-Bei Programmstart wird der SQL Server erstellt
-Bei Programm beendigung wird der SQL Server wieder entfernt
-Der Benutzer muss nichts zusätzlich installieren und kriegt nichts mit
-Ich kann die SQL Komponenten von Lazarus verwenden
Gibts HowTo's wie man sowas mit Lazarus macht? Ich hab bisher noch nichts mit Datenbankkomponenten gemacht und mir fehlt so auch etwas die Idee wie ich das ganze angehn soll.

also mit SQLite kann ich das alles machen?
-In mein Programm integrieren
-Bei Programmstart wird der SQL Server erstellt
-Bei Programm beendigung wird der SQL Server wieder entfernt
-Der Benutzer muss nichts zusätzlich installieren und kriegt nichts mit
-Ich kann die SQL Komponenten von Lazarus verwenden
Gibts HowTo's wie man sowas mit Lazarus macht? Ich hab bisher noch nichts mit Datenbankkomponenten gemacht und mir fehlt so auch etwas die Idee wie ich das ganze angehn soll.
- af0815
- Lazarusforum e. V.
- Beiträge: 6763
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Bei Embeded Lösungen (SQLite, Firebird, MySQL,..) musst du nur dafür sorgen, das du die benötigten DLLs (bzw. Biblitheken) in das Verzeichnis bringst.
So gesehen muss man sagen - Installieren = nein, zusätzlich kopieren = ja.
Ob der Benutzer was mitbekommt, hängt davon ab, wie du die SW installieren lässt. Nur ein einfaches kopieren des Executables geht nicht, weil du ja diei Bibliotheken mit geben musst (oder Benutzer muss sie sich besorgen).
So gesehen muss man sagen - Installieren = nein, zusätzlich kopieren = ja.
Ob der Benutzer was mitbekommt, hängt davon ab, wie du die SW installieren lässt. Nur ein einfaches kopieren des Executables geht nicht, weil du ja diei Bibliotheken mit geben musst (oder Benutzer muss sie sich besorgen).
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
-
- Beiträge: 94
- Registriert: So 5. Nov 2006, 18:40
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
- Wohnort: Berlin
Es gibt keinen SQL-Server. Die Lazarus Komponente greift einfach auf die SQLite Bibliothek zu. Unter Windoof wäre das also eine DLL, die du einfach mit ins Programmverzeichnis packen kannst.
Wiki-Artikel : http://wiki.lazarus.freepascal.org/Laza ... utorial/de" onclick="window.open(this.href);return false;
Wiki-Artikel : http://wiki.lazarus.freepascal.org/Laza ... utorial/de" onclick="window.open(this.href);return false;
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Naja, nen embedded-Server braucht ja auch nicht zwangsläufig Multiuser-fähig sein. Dann kann man ja gleich den richtigen nehmen
.
Der Vorteil ist aber, das du bspw. den Firebird-embedded später sofort und recht einfach austauschen könntest, falls es eventuell ein Mehrbenutzersystem später irgendwann mal werden könnte.

Der Vorteil ist aber, das du bspw. den Firebird-embedded später sofort und recht einfach austauschen könntest, falls es eventuell ein Mehrbenutzersystem später irgendwann mal werden könnte.
Johannes
so wirklich angefangen hab ich mit dem Projekt immer noch nicht, speziell was die Datenbank angeht. Da ich es aber nun die Tage angehn will, haben mich die Kommentare über Single-/Multi-User zu einer Frage geführt. Also es kommt bestimmt nie vor dass mehrere User gleichzeitig auf die Datenbank zugreifen sollen, aber ich möchte verschiedene Rechte-Level haben:
Level 1 = Datensätze lesen
Level 2 = Level 1 + Datensätze hinzufügen
Level 3 = Level 2 + Datensätze ändern
Level 4 = Level 3 + Datensätze löschen
Da ich von SQL nicht die große Ahnung habe, weiss ich jetzt nicht ob dazu 4 verschiedene User notwendig wären und dass man um sein Rechte-lvl zu ändern den User wechseln müsste, wenn das denn möglich wäre. Oder gibt es da bei SQLite andere Möglichkeiten?
Notfalls löse ich das halt in dem Programm, und nicht in der Datenbank, auch wenn letzteres sicher elleganter wäre, falls möglich.
Level 1 = Datensätze lesen
Level 2 = Level 1 + Datensätze hinzufügen
Level 3 = Level 2 + Datensätze ändern
Level 4 = Level 3 + Datensätze löschen
Da ich von SQL nicht die große Ahnung habe, weiss ich jetzt nicht ob dazu 4 verschiedene User notwendig wären und dass man um sein Rechte-lvl zu ändern den User wechseln müsste, wenn das denn möglich wäre. Oder gibt es da bei SQLite andere Möglichkeiten?
Notfalls löse ich das halt in dem Programm, und nicht in der Datenbank, auch wenn letzteres sicher elleganter wäre, falls möglich.