各位大侠请进来,一个关于ListView的问题! ( 积分: 100 )

  • 主题发起人 主题发起人 Lu_JR
  • 开始时间 开始时间
L

Lu_JR

Unregistered / Unconfirmed
GUEST, unregistred user!
最近在学用ListView,想将ListView中的各行数据导入到数据库中,代码如下:
procedure TfrmProducts.BitBtn1Click(Sender: TObject);
var
i:Integer;
begin
i:=0;
while i< LV.Items.Count-1 do
begin
with frmDm.queProducts do
begin
Append;
FieldByName('ProductsAddTime').AsDateTime:=Now;
FieldByName('ProductsName').AsString:=LV.Items.Item.Caption;
FieldByName('ProductsFormatExt').AsString:=LV.Items.Item.SubItems.Strings[0];
FieldByName('ProductsSize').AsVariant:=StrToFloat(LV.Items.Item.SubItems.Strings[1]);
FieldByName('ProductsLanguage').AsString:=trim(edtLang.Text);
FieldByName('ProductsDownloadURL').AsString:=LV.Items.Item.SubItems.Strings[2];
Post;
end;
i:=i+1;
end;
end;

运行时出现“多步操作产生错误。请检查每一步的状态值。”(用的是SQL Server2000数据库),数据未被导入数据库中,请高手帮助分析,谢谢各位有心人!
 
我感觉你用sql语句进行多步添加比较好
while ..do
begin
...
sql.add('...');
...
end;
execsql;
 
经过几小时的分析,终于将问题解决了。将语句
FieldByName('ProductsSize').AsVariant:=StrToFloat(LV.Items.Item.SubItems.Strings[1]);
改为
FieldByName('ProductsSize').AsFloat:=StrToFloat(LV.Items.Item.SubItems.Strings[1]);
并将“ProductsSize”的数据类型按decimal不作更改进行设置。
OK,运行能得到预期效果。
 
后退
顶部