Datenbank: Fehler "v_items"?

etwas für den torben :slight_smile:

nachdem alle lieder der datenbank hinzugefügt worden, kommt, wenn ich den “Unsortiert” Ordner, oder die Interpreten oder einen anderen Menüpunkt öffne der Fehler:

SQL Error: no such table: v_items

Freitag, 10. April 2009, 15:39:25

Program Version 3.0.1 Build 534

Call stack:

(002AAB3C) [006ABB3C]
(002AF153) [006B0153]
(0028B42E) [0068C42E]
(0028B52E) [0068C52E]
(00518CF5) [00919CF5]
(00252F4C) [00653F4C]
(00252ECD) [00653ECD]
(0050BFB6) [0090CFB6]
(00138FFF) [00539FFF]
(00131128) [00532128]
(00071D6F) [00472D6F]
(00128767) [00529767]
(00127C7A) [00528C7A]
(00075C0D) [00476C0D]
(00022FF8) [00423FF8]
(0003ABB4) [0043BBB4]
(00075720) [00476720]
(0002E9DC) [0042F9DC]
(00075C0D) [00476C0D]
(0013D236) [0053E236]
(00075398) [00476398]
(0002E9DC) [0042F9DC]
(0006D0EA) [0046E0EA]
(0008FA1C) [00490A1C]
(0008FA56) [00490A56]
(0008FC76) [00490C76]
(00517E53) [00918E53]
(0052D325) [0092E325]
(00537A36) [00938A36]


Ansonsten schonmal ein kleiner Einblick in das was ich schon sehen kann.

Die mAirListDB filtert scheinbar direkt aus den ID-Tags der Dateien diverese Attribute wie Jahr, Herausgeber, BPM,… . Dies wird dazu verwendet um die Datein den Attributen nach zu ordnen. So sieht man zum Bsp. (nehme ich an, so sieht es zumind. aus ^^) im Attribut Jahr die verschiedenen jahreszahlen und darin die Songs die aus diesen Jahr stammen.

Weiteres folgt, soblad der Fehler raus ist

Ich habe mir mal erlaubt, diesen Beitrag aus dem “mAirList nicht mehr kostenlos”-Thread zu extrahieren.

Leider kann ich das Problem bei mir nicht reproduzieren. Wie sieht es bei den anderen Personal-Edition-Benutzern aus? Konntet ihr die Datenbank erfolgreich einrichten?

Die benötigte sqlite3.dll gibt es zum Beispiel hier: http://www.sqlite.org/sqlitedll-3_6_13.zip
Ab mAirList 3.0.2 ist wird sie auch direkt von mir mitgeliefert.

Ich lade gleich nochmal einen Snapshot hoch, in dem die Einrichtung der Datenbank in mAirListConfig etwas vereinfacht wurde.

Das Einrichten der Datenbank ist nicht das Problem. Öffne ich aber anschließend die Datenbank-Verwaltung und klicke dort dann auf den Ordner “Unsortiert” (egal ob schon Songs hinzugefügt oder nicht), erhalte ich den gleichen Fehler wie Ssnake:

SQL Error: no such table: v_items

Freitag, 17. April 2009, 22:04:20

Program Version 3.0.1 Build 536

Call stack:

[006CBBBC] ZDbcSqLiteUtils.CheckSQLiteError (Line 229, “ZDbcSqLiteUtils.pas” + 14) + $3C
[006CD967] ZDbcSqLiteStatement.TZSQLiteStatement.ExecuteUpdate (Line 210, “ZDbcSqLiteStatement.pas” + 4) + $B
[0066C98E] ZDbcStatement.TZEmulatedPreparedStatement.ExecuteUpdate (Line 2000, “ZDbcStatement.pas” + 1) + $11
[0066CA8E] ZDbcStatement.TZEmulatedPreparedStatement.ExecuteUpdatePrepared (Line 2040, “ZDbcStatement.pas” + 1) + $14
[00745F99] DBConnectionLite.TmAirListDBLite.ExecuteIndependentQuery (Line 112, “DBConnectionLite.pas” + 4) + $5
[00747338] DBQueryTreeView.TDBQueryTreeView.UpdateList (Line 76, “DBQueryTreeView.pas” + 3) + $24
[007472B9] DBQueryTreeView.TDBQueryTreeView.SetStatement (Line 68, “DBQueryTreeView.pas” + 3) + $4
[00749DD6] DBBrowserTreeView.TDBBrowserTreeView.DoFocusChange (Line 454, “DBBrowserTreeView.pas” + 97) + $9
[005503A3] VirtualTrees.TBaseVirtualTree.HandleMouseDown (Line 21607, “VirtualTrees.pas” + 206) + $10
[005484B4] VirtualTrees.TBaseVirtualTree.WMLButtonDown (Line 16943, “VirtualTrees.pas” + 6) + $8
[00472DB3] Controls.TControl.WndProc + $2BB
[00476764] Controls.TWinControl.IsControlMouseMsg + $60
[00476C51] Controls.TWinControl.WndProc + $499
[00554622] VirtualTrees.TBaseVirtualTree.WndProc (Line 24002, “VirtualTrees.pas” + 32) + $4
[004763DC] Controls.TWinControl.MainWndProc + $2C
[0042FA20] Classes.StdWndProc + $14
[0046E12E] Controls.FindControl + $42
[00490A60] Forms.TApplication.ProcessMessage + $FC
[00490A9A] Forms.TApplication.HandleMessage + $A
[00490CBA] Forms.TApplication.Run + $96
[0075A7A2] mAirListDBMainWindows.TDBMainWindowClass.Run (Line 109, “mAirListDBMainWindows.pas” + 74) + $7
[00932AD1] mAirList.MainWindow (Line 90, “C:\projects\mAirList\trunk\mAirList.dpr” + 13) + $C
[0093DA36] mAirList.mAirList (Line 114, “” + 20) + $5

Zusätzlich ist es so, dass im neuesten Snapshot auch das Hinzufügen von Musik-Speicherorten nicht mehr funktioniert. Klicke ich auf den Button “Hinzufügen”, passiert nichts.

Ich habe da einen ganz anderen Fehler (sqlite ist im Installationsordner sowie im Ordner /Config):

Wenn ich die Datenbank aus dem Startmenü heraus starten will, passiert folgendes:

“Fehler beim Verbinden mit der Datenbank: SQL Error: SQL Logic Error or missing database” als Dialogbox mit einem “Ok”-Button poppt auf, beim Bestätigen war’s das dann (Dialogbox schliesst sich wieder und weiter tut sich nix).

Im Config-Screen siehts so aus: mairlistdb (lokal) ist angelegt, bei Klick auf “bearbeiten” und dann auf “Test” und “Datenbank-Test” kommen dann diverse Fehlermeldungen im Testfenster, u.a. “Fehler in Tabelle ‘artist’ SQL Error: SQL Logic Error or missing database”. Das Gleiche mit den verschiedenen Tabellen wie ‘folder’, ‘config’, ‘items’ und so weiter…

BTW: Wie komme ich an den neuen Snapshot dran?

Das hatte ich auch am Anfang mal. Geholfen hat: mAirListDB in der Datenbank-Rubrik in der Config löschen und dann auf Speichern. Anschließend die .db-Datei von Hand löschen. Nun die Config wieder öffnen und dort in der Datenbank-Rubrik wieder auf hinzufügen und die mAirListDB hinzufügen. Wennn du das mit dem neuen Snapshot http://www.mairlist.com/download/mAirList/v3.0/snapshot/ gemacht hast, klickst du anschließend rechts auf Bearbeiten und wählst dann neue Datenbank erstellen und gibst dann den Speicherort an. Anschließend kommt ein Popup-Fenster mit den angelegten SQL-Tabellen. Dann sollte es klappen.

Tut mir doch bitte (einer von euch reicht) einen gefallen: Mittels mAirListConfig eine neue (leere) *.db-Datei anlegen und mir die zumailen. Dann kann ich hoffentlich feststellen, woher der v_items-Fehler kommt.

Ist soeben geschehen! :slight_smile:

Ich hätte da noch ein paar Problemchen: Ich krieg’ es ums verrecken nicht hin, irgendwelche Dateien in die Datenbank einzupflegen. Auch im PFL-Dialog oder im File-Tagger ist der Datenbank-Button deaktiviert. Die aktuelle Snapshot habe ich, bisher noch keine Beanstandungen.

Allerdings habe ich bis jetzt nur mit der mairlistdb hantiert, eine “offair”-Probesendung habe ich noch nicht begonnen.

Danke an @gent001, hat so hingehauen, zumindest ohne Fehlermeldungen. Ob die db läuft kann ich aus oben genannten Gründen nicht sagen.

Schaut ihr mal bitte in die database.ini, ob der Dateiname der *.db-Datei dort mit oder ohne vollem Pfad steht?

Dort steht:

[Database1]
Type=mAirListDBLite
Filename=D:\Setup-Dateien\mAirList\database.db

So langsam komme ich dem Fehler auf die Schliche.

@agent, welche sqlite3.dll verwendest du? Die, die ich verlinkt hatte? Und kannst du mal schauen, ob es irgendwo in deinem System noch eine sqlite.dll oder sqlite3.dll gibt?

Das Problem scheint zu sein, dass mAirList die Funktion GROUP_CONCAT benutzt, die erst relativ neu bei SQLite zur Verfügung steht. Wenn jetzt irgendwo im System eine sqlite.dll von einem anderen Programm rumschwirrt, kann es sein, dass mAirList zunächst die findet und verwendet, und da fehlt die Funktion dann und der View v_items kann nicht angelegt werden.

Also bitte mal die Suche anwerfen.

Also ich habe eine sqllite3.dll in mein mAirList-Verzeichnis kopiert, die ich von irgendeiner DLL-Dateien-Runterlad-Seite im Netz gezogen hab.
Die Windows-Suche zeigt mir noch fünf weitere sqllite3.dll-Dateien im Verzeichnis von Spybot Search & Destroy, Avira AntiVir, Apple Mobile Device Support, Inkscape, TomTomHome sowie eine sqlite.dll im Verzeichnis des Adobe Reader an.

Aber es war ja definitiv so, dass mAirList diese Dateien in den Programm-Verzeichnissen offenbar nicht erkannt hatte, weil ich die DLL-Datei ja extra runtergeladen hab, nachdem sich mAirList beschwerte, so eine Datei nirgendwo finden zu können…

Zieh dir doch mal die alleraktuellste direkt von der SQLite-Seite: http://www.sqlite.org/sqlitedll-3_6_13.zip

Wie gesagt, die GROUP_CONCAT-Funktion, die für den View v_items benötigt wird, ist noch sehr neu und möglicherweise noch nicht in den Versionen enthalten, die man auf irgendwelchen anderen Download-Seiten so findet.

Build 537 ist übrigens gerade auf dem Weg zum Server, dort geht dann auch der “Hinzufügen”-Button bei der Speicherort-Konfiguration wieder.

Übrigens, in der database.db, die Scrat mir geschickt hat, wurde der v_items-View korrekt angelegt. Es ist also offenbar wirklich eine Frage der korrekten DLL.

SUPER, mit dieser dll klappt es! :slight_smile: Kleiner Schönheitsfehler noch im Speicherort hinzufügen-Dialog: das “R” in “Ordner” ist groß geschrieben. :wink:

Zwei weitere Gedanken noch zur mAirListDB: Dringend erforderlich wäre eine Aktualisierungsfunktion, die die Musik-Speicherorte nach veränderten mp3-Dateien durchsucht und die eingelesenen Dateien aktualisiert (z.B. wenn der Titel im ID3-Tag geändert wurde).
Außerdem finde ich es sehr schade, dass der Genre-Tag nicht aus den mp3s ausgelesen und als Attribut angezeigt wird. Kannst du das noch nachrüsten?

Ansonsten kannst du dich schon mal drauf einstellen, dass ich dich bald mit Fragen zu einem Import der radioDB in die mAirListDB löchern werde. :wink:

Ergänzung: Ich würde außerdem gern bei Speicherorten festlegen können, ob Unterordner mit hinzugefügt werden dürfen oder nicht. :wink:

Noch ein kleiner Fehler: Ich habe gerade testweise fünf Dateien aus einem Verzeichnis in die DB geladen und sie anschließend wieder von Hand gelöscht. Während in der DB-Verwaltung sich die Interpreten-Rubrik nach dem Löschen der Dateien richtigerweise nicht mehr aufklappen lässt, werden die Interpreten im Datenbank-Browser in mAirList jedoch noch angezeigt… ???

Wie soll das funktionieren? Was passiert, wenn du den Titel in der Datenbank ebenfalls geändert hast? Was passiert mit den Dateien, bei denen während des erstmaligen Imports ein (falscher) ID3-Tag eingelesen wurde und dieser dann in der Datenbank korrigiert wurde? Soll der dann während des Durchlaufens der von dir gewünschten Funktion wieder mit den falschen Daten überschrieben werden? Das wäre wohl nicht sinnvoll.

Okay, sehe ich ein. Das heißt: Wenn ich den Tag einer mp3-Datei auf der Festplatte geändert hab und diese Änderung analog auch in der Datenbank haben möchte, müsste ich den Titel aus der Datenbank löschen und dann über “Neue Dateien suchen” wieder hinzufügen?!