Code: Select all
SetDatabaseString(Program\DatabaseHandle, 0, "Stargate")
DatabaseQuery(DatabaseHandle.i, "SELECT title, recordid FROM db_movies WHERE title LIKE '%?%' ORDER BY title ASC")
"SELECT title, recordid FROM db_movies ORDER BY title ASC"
Code: Select all
SetDatabaseString(Program\DatabaseHandle, 0, "Stargate")
DatabaseQuery(DatabaseHandle.i, "SELECT title, recordid FROM db_movies WHERE title LIKE '%?%' ORDER BY title ASC")
Code: Select all
UseSQLiteDatabase()
DB = OpenDatabase(#PB_Any, ":memory:", "", "", #PB_Database_SQLite)
If DB
DatabaseUpdate(DB, "Create Table db_movies (title text, recordid integer)")
For Counter = 1 To 5
DatabaseUpdate(DB, "Insert Into db_movies Values ('Hello World '," + Str(counter) + ")")
Next
For Counter = 6 To 10
DatabaseUpdate(DB, "Insert Into db_movies Values (' Stargate " + Str(counter) + "'," + Str(counter) + ")")
Next
For Counter = 11 To 15
DatabaseUpdate(DB, "Insert Into db_movies Values ('Hello World '," + Str(counter) + ")")
Next
SetDatabaseString(DB, 0, "%Stargate%")
If DatabaseQuery(DB, "SELECT title, recordid FROM db_movies WHERE title LIKE ? ORDER BY title ASC")
While NextDatabaseRow(DB)
Debug GetDatabaseString(DB, 0)
Wend
FinishDatabaseQuery(DB)
Else
Debug DatabaseError()
EndIf
CloseDatabase(DB)
EndIf
Oh, I see/ Thanks Bernd, didn't know how it worked with prepared statements that way and didn't know how to test it with my sqlite tool.infratec wrote:This works:BerndCode: Select all
UseSQLiteDatabase() DB = OpenDatabase(#PB_Any, ":memory:", "", "", #PB_Database_SQLite) If DB DatabaseUpdate(DB, "Create Table db_movies (title text, recordid integer)") For Counter = 1 To 5 DatabaseUpdate(DB, "Insert Into db_movies Values ('Hello World '," + Str(counter) + ")") Next For Counter = 6 To 10 DatabaseUpdate(DB, "Insert Into db_movies Values (' Stargate " + Str(counter) + "'," + Str(counter) + ")") Next For Counter = 11 To 15 DatabaseUpdate(DB, "Insert Into db_movies Values ('Hello World '," + Str(counter) + ")") Next SetDatabaseString(DB, 0, "%Stargate%") If DatabaseQuery(DB, "SELECT title, recordid FROM db_movies WHERE title LIKE ? ORDER BY title ASC") While NextDatabaseRow(DB) Debug GetDatabaseString(DB, 0) Wend FinishDatabaseQuery(DB) Else Debug DatabaseError() EndIf CloseDatabase(DB) EndIf
Code: Select all
... 0, "Stargate")
...
... LIKE '%?%' ...
Code: Select all
... 0, "%Stargate%")
or
... 0, "%" + "Stargate" + "%")
...
... LIKE ? ...
Bernd knows what he is doing and it works. tested.Marc56us wrote:Do not encapsulate the placeholder: ?
Don't doDoCode: Select all
... 0, "Stargate") ... ... LIKE '%?%' ...
Code: Select all
... 0, "%Stargate%") or ... 0, "%" + "Stargate" + "%") ... ... LIKE ? ...