0

在相关线程上没有答案,所以我提出了这个问题。我一直在搜索如何使用具有多个值的 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) 时,它工作正常。

问题是:

  1. 如何纠正它,所以我可以从 3 个不同的记录中获取值?
  2. 如何将其应用于字符串值?
4

2 回答 2

5

SQL是一个TStrings子类。当您CommaText使用上述设置时,您实际上是将查询设置为:

select PRICE from DVD where ID in (1
2
3)

这显然行不通。
您想设置Text属性或使用Add()方法来添加单独的行。

于 2014-06-01T15:20:23.697 回答
0

尝试在 SQL 调用中使用CommandText而不是CommaText

DM.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)';
于 2014-06-01T14:37:33.243 回答