TSQLQuery没有返回正确数量的记录

ple*_*103 3 delphi sqlite delphi-xe3 firemonkey-fm2

我有一个表Artist,当前包含四个记录,TSQLQuery其中包含以下语句:

SELECT name
FROM Artist
Run Code Online (Sandbox Code Playgroud)

表格Artist还包含以下记录:

id          name
1           Artist 1
2           Artist 2
3           Artist 3
4           Artist 4
Run Code Online (Sandbox Code Playgroud)

目前的记录检索方法:

Query1.Open;
for i := 0 to qArtist.FieldCount -1 do
    with cbArtist.ListBox.ListItems[i] do
        Text := qArtist.Fields[i].AsString;
Run Code Online (Sandbox Code Playgroud)

以前的记录检索方法:

数据绑定Query1ComboBox1.


使用"previous"方法,ComboBox1将显示Artist表中的所有预期记录.但是,当我尝试使用"当前"方法时Query1,只选择Artist表中的第一条记录,尽管还有其他三个现有值.我已尝试跨越其他查询的"当前"方法,他们也只返回表的第一个值.

我之所以采用这种新方法,是因为我觉得如果我继续使用"上一个"/数据绑定方法,我的工作非常有限,但除此之外.

那么我该如何解决这个问题呢?即查询问题只选择表中的第一条记录.

RRU*_*RUZ 8

您必须使用EofNext方法迭代记录.

Query1.Open;
 while not Query1.eof do
 begin
  cbArtist.Items.Add(Query1.FieldByName('Artist').AsString);
  Query1.Next;
 end;
Run Code Online (Sandbox Code Playgroud)