Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Sql lokale Datendank OHNE Server (https://www.delphipraxis.net/145851-sql-lokale-datendank-ohne-server.html)

DelTurbo 9. Jan 2010 12:24

Datenbank: Sql • Zugriff über: noch garnicht

Sql lokale Datendank OHNE Server
 
Hi,

hat schonmal einer folgendes probiert? Wie ist der speed? Die Datanbank von mir ist Sehr gross.

http://www.itwriting.com/blog/a-simp...r-for-sqlite-3

Das ist das einzige was ich gefunden habe, was leicht zu "bedienen" ist. Alles andere geht meines erachtens von hinten durch die brust ins auge.

Leider ist der Sourcecode von ihm etwas schlecht lesbar. Aber was ich kurz mal angetestet habe ging recht flott und gut.

Danke

mkinzler 9. Jan 2010 12:26

Re: Sql lokale Datendank OHNE Server
 
Hier würde sich ja einen embedded datenbank wie FB embedded oder SQLite anbieten

ap_computers 9. Jan 2010 12:29

Re: Sql lokale Datendank OHNE Server
 
Ich hab das schonmal genutzt. Über die Quelltextsteuerung funktionierts ganz gut. Will ich aber die Daten in einem DBGrid o.ä. anzeigen lassen, kommt immer die meldung "Beschädigter Index" oder so ähnlich.
Ich nutze ZEOS über sqlite3-dll's und das hat mir bisher keine Probleme bereitet.

DelTurbo 9. Jan 2010 12:33

Re: Sql lokale Datendank OHNE Server
 
Hmmm,

@mkinzler,
hast du überhaupt mal auf den link geklickt?

Zitat:

A simple Delphi wrapper for Sqlite 3
@ap_computers,
ich will nix anzeigen. Er soll nur daten speichern und ich will dann nur per query wissen ob sie da sind. Mehr nicht. Also das soll rein "intern" laufen. Keinerlei usereingaben oder irgendwelche ausgaben. Da du es ja schonmal benutzt hast, ist es schnell?

Gruss und danke für die antworten ;)

mkinzler 9. Jan 2010 12:37

Re: Sql lokale Datendank OHNE Server
 
SQLite ist sehr schnell beim reinen Schreiben/Lesen von Daten.

DelTurbo 9. Jan 2010 12:47

Re: Sql lokale Datendank OHNE Server
 
Zitat:

Zitat von mkinzler
SQLite ist sehr schnell beim reinen Schreiben/Lesen von Daten.

Vielen dank. Dann werde ich das nehmen. Ich hoffe das ist auchnoch schnell wenn die datenbank 500MB gross ist.

Danke

RWarnecke 9. Jan 2010 13:32

Re: Sql lokale Datendank OHNE Server
 
Zitat:

Zitat von DelTurbo
Vielen dank. Dann werde ich das nehmen. Ich hoffe das ist auchnoch schnell wenn die datenbank 500MB gross ist.

Bei der Größe würde ich eher auf eine Embedded (z.B. Firebird) Variante zurückgreifen.

DelTurbo 9. Jan 2010 13:45

Re: Sql lokale Datendank OHNE Server
 
Für den FireBird habe ich leider nicht so ein "einfaches" beispiel gefunden. Das ding muss auch MultiThread fähig sein. Da ich mehrere Thread laufen habe die schreibend und lesend drauf zugreifen. Aber ich denke mal das kann auch FireBird, oder?

Ansonsten, wie gesagt, so ein einfaches beispiel habe ich nirgends gefunden. In dem sql-ding ist alles drinne was ich brauche. Zur laufzeit erstellen, eine beispiel für eine tabelle zu erstellen, eine abfrage, ein insert usw.

Da ich schon PHP-Sachen mit mysql gemacht habe, dürfte ich da keine grösseren probs haben. Was mir halt fehlte, ist etwas was ohne server läuft.

mkinzler 9. Jan 2010 13:52

Re: Sql lokale Datendank OHNE Server
 
Zitat:

Für den FireBird habe ich leider nicht so ein "einfaches" beispiel gefunden. Das ding muss auch MultiThread fähig sein. Da ich mehrere Thread laufen habe die schreibend und lesend drauf zugreifen. Aber ich denke mal das kann auch FireBird, oder?
Ja, wenn jeder Thread eine eigene Verbindung verwendet.
Mehrer Prozesse kann FB aber erst mit Version 2.5, welche noch nicht final ist. In diesem Fall würde ich aber eh einen Server einsetzen.

http://www.delphi-treff.de/tutorials...-und-firebird/
http://www.delphi-treff.de/tutorials...ken/interbase/

RWarnecke 9. Jan 2010 15:33

Re: Sql lokale Datendank OHNE Server
 
Wenn Du MySQL schon mal verwendet hast, dannn kannste auch den Bei Google suchenmysql embedded server verwenden.

mkinzler 9. Jan 2010 15:44

Re: Sql lokale Datendank OHNE Server
 
Wobei man dann in die mySQL-Lizenzfalle tappen kann

DelTurbo 30. Jan 2010 18:07

Re: Sql lokale Datendank OHNE Server
 
Sorry,

ich muss hier nochmal "aufmachen". Meine DB hat nun 10.000 einträge. Ich habe 7 kategorien. Nun schaue ich alle 5 sekunden nach wieviel in der einzelen kategorie ist. Leider hat dann das programm so kleine "hänger" weil es relativ lange dauert.

Das mit dem sql viel mir relativ leicht, weil ich schon einiges mit mysql gemacht hatte. War zwar php aber das spielt ja keine rolle.

Noch ein nachteil von dem ding ist, man darf die DB nur einmal öffnen. Gibt es sonstnoch möglichkeiten mit einer lokalen datenbank zu arbeiten?

Danke im voraus

EDIT: Ich habe mir grade mal das ZEOS geladen. Sieht ja einfach aus. Wie ist denn mit dem speed???

mkinzler 30. Jan 2010 18:21

Re: Sql lokale Datendank OHNE Server
 
Zitat:

Meine DB hat nun 10.000 einträge. Ich habe 7 kategorien.
Sollte kein Problem darstellen
Zitat:

Nun schaue ich alle 5 sekunden nach wieviel in der einzelen kategorie ist.
Warum dass? Ich würde die Anzahl bei Inserts aktualisiern (Trigger)
Zitat:

Leider hat dann das programm so kleine "hänger" weil es relativ lange dauert.
Was bedeutet realtiv lang?
Hast du entsprechende Indizes erstellt?
Welches DBMS nimmst du nun?

Trigger2003 30. Jan 2010 19:21

Re: Sql lokale Datendank OHNE Server
 
Zitat:

Zitat von DelTurbo
Gibt es sonstnoch möglichkeiten mit einer lokalen datenbank zu arbeiten?

Kannst es ja mal hiermit versuchen:

NexusDB Embedded

Ist ziemlich flott und multi-threading ist auch kein Problem...

DelTurbo 31. Jan 2010 10:02

Re: Sql lokale Datendank OHNE Server
 
@mkinzler,

tja, was heisst relativ lang. 500ms vielleicht. Man merkt es wenn man ein fremdes fenster über das prg schiebt. Also immer hin und her. Dann merkt man halt das der refresh/repaint verspätet kommt. Von der rechenlast merkt man kaum was davon das er in die DB schaut. Also der ist dann nicht auf 100% oder so.

Zum trigger. Das hätte ich natürlich gemacht aber das prg weiss nicht wann sich was geändert hat. Das macht jemand anders. Deswegen muss ich nachsehen und "durchzählen" lassen.

@Trigger2003, danke ich werde mir das mal ansehen.

Ich danke euch beiden erstmal...

mkinzler 31. Jan 2010 10:09

Re: Sql lokale Datendank OHNE Server
 
Ein Trigger wird ja bei einem Ereignis, z.B. einem Insert ausgelöst.

Aber ich weiss nicht, ob dein Ansatz wirklich so gut ist. Du besitzt doch einen Türklingel/Glocke? :zwinker:

DelTurbo 31. Jan 2010 10:18

Re: Sql lokale Datendank OHNE Server
 
Insert und Update macht jemand anderes. Das prg weiss garnix davon. Ich wüsste nun auch nicht wie ich eine meldung von einem rechner an einen anderen rechner schicken soll. Also ohne grossen aufwand. Das wollte ich mir ersparen. ;)

mkinzler 31. Jan 2010 10:20

Re: Sql lokale Datendank OHNE Server
 
Ein Trigger reagiert auf Inserts, egal von welchem Rechner.
Nur verstehe ich nicht, wie Benutzer auf anderen Rechnern Inserts in deiner datenbak machen können/sollen :gruebel:

DelTurbo 31. Jan 2010 10:33

Re: Sql lokale Datendank OHNE Server
 
Weil die db in einer samba freigabe liegt. Da kann auch mehr als 1 rechner dran :zwinker:

mkinzler 31. Jan 2010 10:35

Re: Sql lokale Datendank OHNE Server
 
Und dann funktionieren auch Trigger!

Trotzdem ist dein Ansatz suboptimal.
Wenn mehrere Clients vorhanden sind, würde ich zudem mit einem Server arbeiten


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz