Sqlite Hochkomma im Pfad

Hallo Freunde!
Wie kann ich einen Pfad mit einem Hochkomma in Sqlite sauber speichern?
Liebe Güsse
Micha D.

FolderItem.Nativepath geht nicht? Dann evtl mal die Alternativen dazu ausprobieren: .Shellpath oder .URLpath

in ein Feld schreiben.
Wo wäre das Problem?

Vielen Dank Ihr Beiden!
Ich nutze in der Regel den Shellpath.
Mein Problem: Ich habe einige mp3-Dateien, in diesen befinden sich blöderweise
Hochkommas.
Leider kann ich diese Pfade nicht in SQLight speichern.
Was muss ich tun, damit SQLite den Satz annimmt.
Sodass ich den Pfad wieder im FolderItem einbringen kann.

Code? Fehlermeldung?

Den Wert (Shellpath) und auch alle anderen Felder übergibst du mit Platzhalter (?).
Dann funktioniert es mit beliebigen Hochkommas im Pfad immer.
Um die Übersicht der Parameter zu behalten kannst auch noch eine Array verwenden.
Siehe Dokumentation “ExecuteSQL”

var vSQL as string = "INSERT INTO Movie (shellpath, moviename) VALUES(?,?);"
var vShellpath as string = "mein''Shellpath/mit  ' ' ' ' und.;.-/|\öst"
var vSoundtrack as string = "Blitz und Donner"
  
  Try
    app.DB.ExecuteSQL(vSQL, vShellpath, vSoundtrack)
  Catch err As DatabaseException
    'Error handling
    Return
  End Try
  

Ansonsten:

Hallo Freunde,
Sorry, dass ich jetzt erst melde. Habe noch einige andere Dinge klären müssen.
Zu mein Problem mit den Hochkommer im Shell-Pfad.
Also das Speicher mit:

Hallo Freunde
hier nocheinmal mein Problem

Dim ps As SQLitePreparedStatement
Ps= DB.Prepare(“INSERT INTO Musiktabelle (Pfad,Titel,Album,Jahr,Interpret) VALUES (?,?,?,?,?)”)
funktioniert einwandfrei.

Aber: ich möchte mit einer Abfrage den Shell-Pfad mit den Pfad der DB, klären
bevor ich einen neuen Satz eingebe.
sq=“select Titel from Musiktabelle where Pfad='”+ShellPfad+“'”
rs=db.SelectSQL(sq)
if rs.RowCount=0 then…

Leider gibt es hier das Problem, weil der Pfad vs. ShellPfad unterschiedlich ist.
Man muss den ShellPfad irgendwie mit den Hochkommas so anpassen, dass die
Abfrage ohne Fehler abläuft.

Liebe Grüsse Micha

haste das mal so versucht? so hast du ihn doch auch gespeichert oder?

rs=db.SelectSQL("select Titel from Musiktabelle where Pfad=?", ShellPfad)

oder ggfs. Like Suche

2 Likes

Hallo Marcus,
Habe es probiert und das ist wirklich genial!!!
Also vielen DANK
Micha

2 Likes

Um “unbequeme” Daten in Datenbanken zu speichern, “verpackt” man sie mit Base64. Man kann ja vorher noch eine entschärfte Version zur Anzeige und zum Suchen, also nur mit “erlaubten” Zeichen, in einem extra Feld ablegen …

dafuer gibt es binary/blob felder einfach nur bytes wie eine datei eben ist

Dafür gibt es den PathMode URL:

file:///Users/beatrixwillius/Documents/Mail%20Archiver%20X%203