2017-08-07 69 views
0

一起工作我在做一個學校項目,需要編寫一個查詢來將數據集過濾到某些變量。我所有的SQL都可以正常工作,除非我無法使LIKE語句與%-signs一起工作。我相信我的語法錯了。任何人都可以告訴我我做錯了什麼。感謝無法讓delphi SQL LIKE與%

的代碼:產生

qryMovie.SQL.Clear; 
qryMovie.SQL.Add('SELECT * FROM Movies'); 
qryMovie.SQL.Add('WHERE Genre = ' + QuotedStr(genre)); 
qryMovie.SQL.Add('AND Price BETWEEN ' + minPrice + ' AND ' + maxPrice); 
qryMovie.SQL.Add('AND Title LIKE %' + title + '%'); 
qryMovie.Open; 

錯誤:

'在查詢表達式語法錯誤' 流派= '動作/驚險' 與價格之間0和200 和標題LIKE%星球大戰%'

+1

更好的使用參數。 – Victoria

+1

http://bobby-tables.com/delphi –

回答

7

LIKE%星球大戰%

但你需要

LIKE '%星球大戰%'

需要引用%'

qryMovie.SQL.Add(' AND Title LIKE ''%' + title + '%'''); 

反正你應該使用綁定的參數而不是將SQL字符串。它很容易出錯,並可能導致SQL注入攻擊。

+0

感謝您的幫助,但是當我使用您的代碼時,我收到錯誤「預計(但收到字符串文字」+標題+「。 – RT5754

+2

單引號需要翻倍當嵌入一個Pascal字符串 – MartynA

+0

@MartynA謝謝 – lad2025