DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: lixuan123
今日帖子: 0
在线用户: 1
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 tcagence (bluenight) ★☆☆☆☆ -
普通会员
2004/2/29 20:54:30
标题:
关于不能更改数据的问题 浏览:1056
加入我的收藏
楼主: ado+sql server 配置正常,现在我在数据库中写了25920的数据,现在要更改其中一个字段,更改25920次,然而我只能更改第一条。不知为什么?
代码如下:
  for k:=1 to 25920 do
     begin
       with adotable1 do
         begin 
            open;
            edit;
            fieldbyname('液位值').asfloat:=Yw;
            post;
            next;
            close;
         end;
      end;
 不知道这样为什么不行,只能更改第一行,而不是所有行 
 后来我把next改为last也不行,为什么
  而写数据的时候,把edit改为append 就能添加数据呢
急!

谢谢!
----------------------------------------------
-
作者:
男 hebiziyu (hebiziyu) ★☆☆☆☆ -
盒子活跃会员
2004/3/1 8:21:12
1楼: 试试这样
adotable1.open;
  for k:=1 to 25920 do
     begin
       with adotable1 do
         begin 
            
           edit;
            fieldbyname('液位值').asfloat:=Yw;
            post;
            next;
            close;
         end;
      end;
我没有测试.你可以试试先.
我的考虑是这样:你在循环中每次都open table1.则每个循环都在修改record NO.1了.所以会出现你说的问题.把open动作放到循环的外部可能会好.
----------------------------------------------
-
作者:
男 tcagence (bluenight) ★☆☆☆☆ -
普通会员
2004/3/1 9:06:57
2楼: dm1.adotable1.open;
dm1.adotable1.first;
while not dm1.adotable1.eof do
 begin
   dm1.ADOTable1.edit;
   dm1.adotable1.fieldbyname('液位值').asfloat:=Yw;
   dm1.adotable1.post;
   dm1.adotable1.next;
 end;
dm1.adotable1.close;
就行了。
不好意思阿!
不过append为什么行呢,我还是不明白?

----------------------------------------------
-
作者:
男 minche (异杰) ★☆☆☆☆ -
盒子活跃会员
2004/3/1 9:21:07
3楼: append是移到表的最后一条记录后添加的.
----------------------------------------------
-和大家一起学习,一起进步!!!
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行50.78125毫秒 RSS