我目前正在开展小项目并且陷入困境。 所以,我创建了一个临时表,其中包含项目详细信息,当我按下按钮[保存]时,我想要的是它将检索这些记录特定值并将值放入不同的临时变量。
这是我为选择特定记录值所做的。
DM.Zread.close;
DM.Zread.SQL.Commatext:= 'Select id_dvd from temp_table where rent_id="rent-0001"';
DM.Zread.open;
例如: 选定的记录值:
id_dvd
| 2 |
| 6 |
| 5 |
正如我之前所说,我想将这些记录值放入3个不同的临时变量中。 所以它会像:
//assumed i did the array function
a:=x[0]; // this line contain value from record one which is 2
b:=x[1]; // this line contain value from record two which is 6
c:=x[2]; // this line contain value from record three which is 5
我完全不知道这样做,我已经在stackoverflow上进行了搜索,并且没有讨论任何线程。但我没有提到这个方法应该使用数组函数,这就是为什么我使用数组制作这个例子的原因。说实话,使用数组时,我并不是真正理解。
非常感谢谁帮助了我。
谢谢
-Dan
答案 0 :(得分:1)
由于您不知道查询将返回多少行,您应该创建一个动态数组来保存值,然后打开表后循环记录并填充数组:
var
i: integer;
IDs: array of integer;
begin
DM.Zread.close;
DM.Zread.SQL.Text:=
Format('Select id_dvd from temp_table where rent_id=%s',[QuotedStr('rent-0001')]);
DM.Zread.open;
SetLength(IDs, DM.Zread.RecordCount);
i:=0;
while not DM.Zread.Eof do begin
IDs[i] := DM.Zread.FieldByName('id_dvd').AsInteger;
inc(i);
DM.Zread.Next;
end;
end;