在相关的帖子上没有答案,所以我提出这个问题。我一直在寻找如何使用具有多个值的where子句检索记录值,我得到了这个。
表示例:
|ID |PRICE|
|1 |3000 |
|2 |2000 |
|3 |1000 |
|4 |5000 |
|5 |4000 |
SQL查询:
DM.Zread.Close;
DM.Zread.SQL.CommaText := 'select PRICE from DVD where ID in (1, 2, 3)';
DM.Zread.Open;
上面给了我一个错误,当我只放一个1值,即(1)或(2),它的工作很好。
问题是:
- 如何直接它,所以我可以从3个不同的值记录?
- 如何将其应用于字符串值?
SQL
是TStrings
的子类。当您使用上述设置CommaText
时,您实际上将查询设置为:
select PRICE from DVD where ID in (1
2
3)
这显然行不通。
您需要设置Text
属性或使用Add()
方法添加单独的行
尝试在SQL调用
时使用CommandText而不是CommaTextDM.Zread.Close;
DM.Zread.SQL.CommaText := 'select PRICE from DVD where ID in (1, 2, 3)';
DM.Zread.Open;
DM.Zread.SQL.CommandText := 'select PRICE from DVD where ID in (1, 2, 3)';