gpt4 book ai didi

delphi - 如何将项目从SQL查询添加到TListView

转载 作者:行者123 更新时间:2023-12-03 19:24:18 25 4
gpt4 key购买 nike

我想使用for循环将查询中的项目添加到TListView中。但是我在ListViewShifts.Items.Add()行中说“实际参数太多”时出错。从查询添加到列表的正确方法是什么?

  Qry := TFDQuery.Create(DBConnection);
Qry.Connection := DBConnection;
Qry.SQL.Text := 'SELECT Count(10) FROM Bookings WHERE NurseNo=:nurseID;';
Qry.Params.ParamByName('nurseID').AsInteger := NurseID;
Qry.Active := True;

//Fill the list view with the shifts that have the nurses ID
for Count := 0 to 10 do
begin
ListViewShifts.Items.Add(Qry.Fields[Count].AsString);
end;

最佳答案

您需要考虑以下几点:


如果您的ListViewShifts变量是TListView,则方法ListViewShifts.Items.Add不需要参数。这是Too many actual parameters错误的原因。
SQL语句SELECT Count(10) FROM Bookings WHERE NurseNo=:nurseID;将返回仅包含一列的结果集。
如果要获取前10行,则您的语句可能应该是:SELECT TOP(10) FROM Bookings WHERE NurseNo=:nurseID;
使用FirstEofNext数据集方法从结果集中获取记录。


下一个基本示例显示了如何在TListView中添加10个项目:

procedure TMainForm.btnGet(Sender: TObject);
var
li: TListItem;
begin

Qry := TFDQuery.Create(DBConnection);
Qry.Connection := DBConnection;
Qry.SQL.Text := 'SELECT TOP(10) FROM Bookings WHERE NurseNo=:nurseID;';
Qry.Params.ParamByName('nurseID').AsInteger := NurseID;
Qry.Active := True;

Qry.First;
for Count := 1 to 10 do
begin
Qry.Next;
li := ListViewShifts.Items.Add;
li.Caption := Qry.Fields[0].AsString;
end;
(*
Qry.First;
while not Qry.Eof do begin
li := ListViewShifts.Items.Add;
li.Caption := Qry.Fields[0].AsString;
Qry.Next;
end;
*)
end;

关于delphi - 如何将项目从SQL查询添加到TListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54830183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com