2012-04-04 18 views
1

Ich möchte eine Spalte abfragen, die Leerzeichen in ihrem Namen enthält. Das Shell-Skript ist:Escape-Anführungszeichen für sqlite3

select "Column 1" from aTable; 

Vielleicht ist es zu spät ist, aber ich bin eine harte Zeit, die Applescript zu entkommen:

set xxx to do shell script "sqlite3 ~/Documents/Databases/test.db \"select \"Address 1\" from aTable limit 10; \"" 
+4

Ist es zu spät, um Sie zu überzeugen, echte SQLite-Bindungen zu verwenden? –

Antwort

2

Benutzen Sie um Ihre SQL:

set xxx to do shell script "sqlite3 ~/Documents/Databases/test.db 'select \"Address 1\" from aTable limit 10; '" 

Or Wenn Sie sich selbst verprügeln möchten, verwenden Sie überall doppelte Anführungszeichen und fügen Sie weitere Escape-Zeichen hinzu:

set xxx to do shell script "sqlite3 ~/Documents/Databases/test.db \"select \\\"Address 1\\\" from aTable limit 10; \"" 

Sie benötigen drei, weil Sie die Escapes zu entkommen müssen, um ein geflutetes Doppelzitat in die Shell zu bekommen. Ick.

Oder besser, verwenden Sie eine native AppleScript SQLite-Schnittstelle, ein paar Minuten Googeln sollte Sie etwas Schöneres als die oben genannten verschachtelten Zitat Wahnsinn finden.

+0

Gut auf allen drei Konten, Danke. – adayzdone