blitzdb - Datenbanken für BlitzMax

Übersicht Sonstiges Projekte

Neue Antwort erstellen

Blacal

Betreff: blitzdb - Datenbanken für BlitzMax

BeitragSo, Apr 23, 2006 19:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Servus

Mein kleines Projekt ist zu Zeit ein Datenbankmodul für BlitzMax, und zwar bau ich das so auf, wie etwa Max2D oder MaxGUI. D. h., ich mache ein Basismodul (blacal.blitzdb), welches ausschließlich Abstrakte Klassen und die Datenbankfunktionen enthält. Diese Klassen werden dann von den "Datenbanktreibern" geerbt (momentan nur blacal.blitzdbsqlite).

Um das mal in Praxis zu Zeigen, mal ein kleines Programmbeispiel:
Code: [AUSKLAPPEN]

Framework brl.Blitz
Import brl.FileSystem
Import brl.StandardIO
Import blacal.blitzdb
Import blacal.blitzdbsqlite

db:TBlitzDB=OpenDb("Only_a_test.sqlite")

ExecuteNonQuery("CREATE TABLE 'namen'('name' VARCHAR(20) NOT NULL)",db)
ExecuteNonQuery("INSERT INTO namen VALUES('test1')",db)
ExecuteNonQuery("INSERT INTO namen VALUES('test2')",db)

rdr:TBlitzDBReader=ExecuteQuery("SELECT * FROM namen",db)
While ReadResultRow(rdr)
   Print GetResultText("name",rdr)
Wend
CloseReader(rdr)

CloseDb(db)

DeleteFile("Only_a_test.sqlite")


Die module findet ihr hier: http://it0407.franzseidl.de/files/blitzdb.rar

So, und jetzt zu was anderem: Momentan unterstützt das Ding wirklich nur das grundsätzliche: Query's, NonQuery's, und das wars scho fast, und das alles nur auf SQLite. Was mich jetzt interresieren würde ist
a) Welche Datenbanken ihr nutzen würdet, und
b) Welche Funktionen noch schön wären

Ich persönlich würde eigendlich nur noch Prepared Statments und unterstützung für Blobs einfügen. Nur gebe es besonders mit dem Prepared Zeugs probleme mit anderen Datenbanken, aber naja, schaumer mal.

Mfg Blacal
 

lettorTrepuS

BeitragSo, Apr 23, 2006 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger.

Blacal

BeitragSo, Apr 23, 2006 21:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, mit einem entsprechenden Treiber kein Problem
So wies momentan aufgebaut ist, könnte man z. B. auch problemlos einen MySql Client einbinden.

Obs Sinn macht, naja. Darüber kann man streiten

rema

BeitragSo, Apr 23, 2006 22:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Sinn würde es sehr wohl machen, wenn man ein NetGame oder so hat mit einer OnlineStatistik, oder anders.

Frage: muss ich wenn ich dieses Module verwende auch SQL installiert haben?

Mir wäre es lieb, wenn man SQL Befehle verwenden würde, ohne aber MySql oder so installiert zu haben. Und auch, wen es OS unabhängig wäre.

Wie siehts aus? Zur Zeit verwende ich MaXml, sehr schnell, aber nicht sehr handlich, da auch nicht Netztauglich.

Jan_

Ehemaliger Admin

BeitragMo, Apr 24, 2006 7:43
Antworten mit Zitat
Benutzer-Profile anzeigen
hm
Ich nutze mysql,oracle und Firebird
mit einer ordentlcihen odbc anbindung ja leicht machbar.

Muss ich mal testen das Modul.
between angels and insects
 

lettorTrepuS

BeitragMo, Apr 24, 2006 8:43
Antworten mit Zitat
Benutzer-Profile anzeigen
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger.

Blacal

BeitragMo, Apr 24, 2006 8:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Das mit dem Systemtreiber ist ein Jein.
Man hat generell 2 Möglichkeiten:

1. Man bindet einen Datenbankclient direkt per c-Sourcen ein (braucht keinen System-Treiber), oder
2. Man benutzt eine Standardisierte Zugriffsbibliothek, wie z. B. Odbc oder neuerdings OleDb. Problem ist nur, dass man hier Systemtreiber braucht, und es langsamer ist

Die Frage is nur, wie das ganze Zeug dann auf anderen Plattformen läuft, und ob man damit in Internet irgendwo hingreifen kann. Muss man halt mal ausprobieren.

Datenbanken kann man aber nicht nur für Highscores hernehmen. Viel näher liegt doch das Speichern von Spieldaten. Z. B. eine Gegner tabelle, eine normale Objekte-Tabelle oder Leveltabelle, ...

Aber schweifmer da mal net zu weit aus, und bleimer beim Machbaren. Ich werd warscheinlich bald einen Mysql Modul dafür machen. Wie ich das hinkreig, werdmer sehen.

Edit:
SQLite übers Internet wird net gehen. Der kann nur Offline auf datenbanken zugreifen, soweit ich weis.
Und sonst gibt man die Datenbank ja bei OpenDB im ersten Parameter an. Also bei Mysql würde es dann z. B. die Server-Adresse sein[/code]
  • Zuletzt bearbeitet von Blacal am Mo, Apr 24, 2006 9:04, insgesamt einmal bearbeitet
 

lettorTrepuS

BeitragMo, Apr 24, 2006 9:01
Antworten mit Zitat
Benutzer-Profile anzeigen
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger.

Blacal

BeitragMo, Apr 24, 2006 9:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Machbar mein ich nicht von den verfügbaren Sourcen her, sonder schlicht von der Zeit
Ich steck nämlich grad mitten in der ausbildung, hab einen Nebenjob, und wir ham zuhause ne Landwirtschaft. Wink
 

lettorTrepuS

BeitragMo, Apr 24, 2006 9:43
Antworten mit Zitat
Benutzer-Profile anzeigen
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger.

Blacal

BeitragSo, Apr 30, 2006 14:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Servus

So, das SQLite Modul ist jetzt fertig, oder zumindest wird jetzt alles unterstützt, was ich anfangs vorhatte. Das wären:

-Normale Execute's (Querys und NonQuerys)
-DataReader (für mehrzeilige Rückgaben)
-Prepared Statements

Aber: SQLite ist nur für Lokale Datenbanken!


Was ich jetzt bräuchte, wären ein paar Beta-Tester. Für jeden, der das Teil mal auf Fehler durchsuchen will, hier sind die beiden Module (für den Pub.mod Ordner)

http://it0407.franzseidl.de/files/blitzdb.zip

Und noch ein Beispiel (eine Offline Highscore):

http://it0407.franzseidl.de/fi...hscore.zip


Und noch was anders:
Hat vieleicht schon einer Erfahrung mit MySQL gemacht? D. h. nicht mit der Library, sonder eher, wie ich die Library in BlitzMax reinkrieg.

Ahja, bevor ichs vergesse
http://sqlitebrowser.sourceforge.net <- hier findet man ein kleines Tool, um SQLite Datenbanken zu erstellen und zu verwalten.

Mfg Blacal

Vertex

BeitragDo, Jun 08, 2006 1:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!
Sorry, aber ich konnte mich jetzt nicht auf die schnelle einarbeiten....
Also was ist SQLite? Ist das eine DB-Engine von dir? Wenn nein, wie ist sie im Vergleich zu MySQL(Geschwindigkeit, Stabilität)? Wie siehts mit den Lizensen aus? Im Modul steht ja Public Domain, aber ich vermute mal, dass damit nur dein Wrapper gemeint ist. Unter welcher Lizens steht SQLite?
So könnte ich meinen Metaserver bequem auf BMax übertragen und PHP endlich in die Tonne treten(Debugging ist immer wieder eine Bereicherung für diese scheiß Sprache).
mfg olli

Blacal

BeitragDo, Jun 08, 2006 12:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Servus

SQLite ist eine OpenSource Library. Man kann es mit einer Access Datenank vergelichen, d. h., jede Datenbank wird in einer Datei abgespeichert und du hast keinen Server dazwischen. Nachteil an der ganzen Sache ist halt, dass du Datenbanken nur lokal anlegen und ändern kannst.

SQLite steht unter Public Domain, genauso wie mein Modul
Mehr infos findest du auf www.sqlite.org.

Mfg Blacal

Vertex

BeitragDo, Jun 08, 2006 13:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Sehr schön. Mir wurde gerade gesagt, dass die DB ja auch für die HP für statistiken genutzt werden muss. Somit kommt das leider nichtmehr in Frage, da Webserver und Metaserver getrennt sind(Netzwerkanbindung muss her). Aber ich werde die DB jedenfalls für private Zwecke nutzen. Also danke für die Mühe!
mfg olli

Neue Antwort erstellen


Übersicht Sonstiges Projekte

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group