blitzdb - Datenbanken für BlitzMax
Übersicht

![]() |
BlacalBetreff: blitzdb - Datenbanken für BlitzMax |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger. | ||
![]() |
Blacal |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger. | ||
![]() |
Blacal |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger. | ||
![]() |
Blacal |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. ![]() |
||
lettorTrepuS |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
-aus Sicherheitsgründen gelöscht- Diese Information ist mit Ihrer Sicherheitsfreigabe leider nicht erhältlich, Bürger. | ||
![]() |
Blacal |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group