Sqlite Abfrage-Problem

Hallo Ihr Lieben!

Ich habe jetzt das erste mal mit einer Splite Abfrage ein Problem!

Beispiel:

Var Tag as string

Var rs as rowset

Tag=”Hallo Welt”

sq=“select * from Alben where Name=‘”+Tag’+“’”
rs=db.SelectSQL(sq)

Normalerweise funktionierte das immer!!!

Plötzlich wird das letzte Hochkomma einfach nicht angenommen. Somit schlägt die Abfrage fehl.

Was kann ich tun? Ich bin wirklich verzweifelt.

Da sind drei hochkomma, eins zu viel direkt nach Tag.

Hallo Christian!

Ja, Du hast recht, sorry ich bin etwas nervös

Ich habe das Hochkomma jetzt entfernt. Es sieht folgendermassen aus:

var sq as string
var level as integer
var rs as RowSet

Tag ist eineString-Variable

sq=“select * from Alben where Name=‘”+Tag+“’”
rs=db.SelectSQL(sq)
Level=rs.Column(“level”).IntegerValue

select * from Alben where Name='Hans

Das Hochkomma rutscht einfach in die nächste Zeile???

image

???

Hello @Michael_Dinse

Consider using a tool like https://sqlitebrowser.org/

It can help you find errors in SQL commands to sqlite :grin:

This compile:


Var Tag As String
Var sq As String
Var db As New SQLiteDatabase
Var rs As RowSet

Tag = "Hallo Welt"

sq="select * from Alben where Name=" + Tag
rs=db.SelectSQL(sq)

Probier doch mal eine etwas modernere Syntax:

rs = db.SelectSQL("SELECT * FROM alben WHERE name = ?", Tag)

Das erspart die Mühe mit den diversen Hochkommata und härtet ausserdem die Abfrage gegen SQLInjections….

Edit: corrected syntax from SQLSelect to SelectSQL

2 Likes

@Thomas_Roemert

Excellent advice

Vielen Danke, Ihr Lieben.

Der Fehler lag, wie immer bei mir. Ich habe die variable Tag, dummerweise aus, einem Textfeld mit key=chr(13) übergeben.

Trotzdem, vielen Dank an alle!!!

This API 1, so 7 years old while what op code shared is API2 (SelectSQL)

Nice screen shot for the eyes:

You’re right, I did correct the post.

1 Like