SQL Error beim Hinzufügen einer Datenbank im mAirList-Browse

Hallo Leute,

ich habe erst letztens dieses geniale Programm aus Zufall entdeckt… Ich bin aber begeistert!!!
Allerdings habe ich ein Problem beim ‘Hinzufügen’ im ‘Browser’.

Und zwar habe ich:

  1. den MySQL-Server aufgesetzt und die eldoDB integriert,
  2. alle .ini eingesellt und
  3. meine Titel über Musikliste.exe zur Datenbank hinzugefügt.

Nun zu meinem Problem:
Beim “Hinzufügen” einer “Datenbank” im mAirList-Browser bekomme ich folgende Fehlermeldung der Datenbank:
SQL Error: You have an error in your SQL syntax near "UNION SELECT CONCAT(‘B’,idx) AS master, CONCAT(‘A’,UPPER(SUBSTRING(name FROM 1 ’ at line 2

Ich weiß leider nicht, was ich dagegen machen soll. Vielleicht ist es auch schon mal von Euch behandelt worden, ich fand es aber leider nicht.
Die Such- sowie ‘Playlist’-Funktion in der Dantenbank funktioniert allerdings.

Vielen Danke schon mal im Voraus!!!
Syn

PS.: Vielleicht bin ich auch nur zu dumm oder mach was falsch!! :smiley:

Hallo Syn.

Um welche MySQL-Version handelt es sich? Den UNION-Befehl, den ich dort verwende, gibt es erst ab Version 4.0.

Andererseits darf MySQL ab Version 4.1 aus Lizenzgründen nicht mit mAirList zusammen eingesetzt werden, deswegen solltest du dir die aktuellste Version aus dem 4.0-Zweig besorgen, das müsste derzeit die Version 4.0.25 sein. Die DLL im mAirList-Verzeichnis brauchst du nicht zu ersetzen.

Torben

Super. Danke!
Mit deser Version funktioniet es. Sorry, ich bin nicht mehr so auf dem Laufendem, was mySQL-Versionen und deren Programmierung betrifft.
Sonst hätt ich das gewußt. Aber es icht mir wie Schuppen von den Augen gefallen, also ich es gelesen habe.

Zuerst hatte ich nämlich die mySQL-Version 4.1 installiert und da ging es garicht. Daraufhin habe ich die 3.23.56 installtert. Da gab es dann diesen Fehler.

Also Danke nochmals!!
Syn

Ok, dann bleib mal bei der 4.0, eine andere Lösung (außer vielleicht Umstieg auf postgresql g) gibt es nicht.

Hier nochmal das Lizenzproblem mit MySQL zusammengefasst: mAirList verwendet die Client-Bibliothek libmysql.dll zum Zugriff auf den Server. Genau wie den Server selbst gibt es auch diese Library (u.a.) in den Versionen 3.23, 4.0 und 4.1. Ab einschließlich Version 4.0 steht die DLL unter der GPL, darf also nur zusammen mit Open-Source-Programmen eingesetzt werden - oder man muss eine kommerzielle Lizenz erwerbe. Den genauen Preis habe ich nicht im Kopf, er liegt aber irgendwo zwischen 500 und 1000 Dollar, wenn ich mich nicht irre.

Die Version 3.23 der DLL steht noch unter der alten LGPL-Lizenz, darf also auch mit Closed-Source-Projekten zusammen verwendet werden. Allerdings lassen sich damit nur Server bis einschließlich 4.0 ansprechen.

Dass es kostenlose Closed-Source-Programme (wie mAirList) gibt, ignoriert dieses zwei-Lizenzen-Modell von MySQL leider.

Alles in allem kann ich allen nur dazu raten, mal einen Blick auf PostgreSQL zu werfen. Das ist wirklich frei (BSD-Lizenz, also keine Einschränkungen in Hinblick auf Closed Source) und vom Funktionsumfang her sehr viel besser als MySQL (enthält schon alle Features, die MySQL erst für Version 7.8 oder so ähnlich ankündigt g). Die neue Version 8.0 von PostgreSQL gibt es auch in einer nativen Windows-Variante. Das eldoDB-Datenbankschema muss man etwas anpassen, dann läuft mAirList aber hervorragend damit.

Torben

Das eldoDB-Datenbankschema muss man etwas anpassen, dann läuft mAirList aber hervorragend damit. Torben

Wie sieht die Anpassung denn aus?

Die Syntax ist an manchen Stellen anders, insbesondere haben manche Datentypen einen anderen Namen als bei MySQL.

Ich hab mal ein paar Files hochgeladen:

http://www.mairlist.de/download/eldoDB/postgres/

admin.sql legt eine Datenbank eldoDB und eine Gruppe eldoDB an. In letztere kann man später alle Datebank-User einfügen, die Zugriff auf die Datenbank erhalten sollen.

eldoDBpg.sql ist das Schema für PostgreSQL. Insbesondere werden hier der Gruppe eldoDB die notwendigen Rechte zugewiesen.

mysql2pg.sh ist ein Shell-Script, das eine vorhandene MySQL-eldoDB unter Zuhilfenahme einer temporären MySQL-Datenbank nach PostgreSQL konvertiert. Läuft leider nur unter *x, wer nur Windows hat, kann die Befehle aber auch von Hand ausführen.

Viel Spaß beim Ausprobieren!

Torben

sodala,

ich hab mir jetzt mal die Zeit genommen und Postgre SQL installiert.

Das eldoDB-Datenbankschema muss man etwas anpassen, dann läuft mAirList aber hervorragend damit.

kann ich net behaupten.

vielleicht bin ich aber auch nur zu blöd dazu.

Hier meine Problemchen:

  1. Datenbank-Suche → funktioniert überhaupt nicht. Nichtmal ne Fehlermeldung

  2. Datenbank-Playlist → Fehler: parser: parse at or near “week” at charakter 56.

  3. DB-logging: bei MySQL hatte ich die Variablen für %a und %b mit " angeführt. Grund: sonst Fehler bei Titeln mit '. z.Bsp: It’s Tricky
    Lässt sich bei pgsql net machen.