导航:
论坛 -> DELPHI技术
斑竹:liumazi,sephil
作者:
2003/8/6 10:48:57
标题:
加入我的收藏
楼主:
麻烦各位了!谢谢! 我想修改carlsk.dbf中的一个字段workname,为什么运行到.Next时出错? Query1.First; With Query1 do Begin Close; Sql.Clear; Sql.Add('update carlsk set workname=''+edit1.text+''); sql.add('where carnum like''+edit2.text+''); Prepare; Execsql; End; Query1.Next; 错误: Qery1 Cnnot Perform This Operation on a Close Dataset.
----------------------------------------------
李平
作者:
2003/8/6 11:09:28
1楼:
你的Query1的语句是"Update"怎么可以用"NEXT"呢!
----------------------------------------------
-
作者:
2003/8/6 11:23:51
2楼:
yu: 你好! 我的程序是这样:它是个实时监控界面,它显示都是'没有检测过'的车的信息 (check_flag为'*'), 当Timer检测到有'检测完'的车辆(因为要一辆一辆地检测),就让这辆车从这个界面消失。每检测完一辆就消失一辆。 每检测完一辆,就要修改这辆车的某一个字段,让它从界面上消失。 不知我说没说明白?所以我要先First,检查是否有检测完的车辆,如果有就用update修改check_flag为'入库',让它打印表格后从这个界面消失(检测完一辆车就打印一张表)。然后再next查找下一辆检测完的车。
----------------------------------------------
李平
作者:
2003/8/6 15:10:13
3楼:
应该用update...where来修改,不可以那样。
----------------------------------------------
没有救世主
作者:
2003/8/6 16:06:58
4楼:
zsyzds: 谢谢!我漏写了一行。 我实在不知该如何修改225个字段的数据库。 我只想能够从第一条到最后一条逐条查询并逐条修改。我试过用Edit和Post,对于77个字段的数据库好使。 如果Delphi不能修改长字段的数据库,我真的很失望!能不能有别的办法。
----------------------------------------------
李平
作者:
2003/8/7 12:56:09
5楼:
你在中间用Update更新时换一个临时的Query即可,而不要仍用原来的Query1.
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
2003/8/12 11:32:42
6楼:
iamdream: 你好! 能说详细点吗?我是个初学者。原来是用vb的,但感觉查询速度慢,所以想换成Delphi,果然查询速度非常快。但是我原来的数据库都是超过100个字段的.dbf表,我发现用Edit和Post修改字段的值,结果出现'字段超长'的错误,我把TQuery组件的CachedUpdate属性改成true,在界面上可以看到已经修改完毕,但退出程序后,.dbf数据表并没有修改。 你说'中间用Update更新时换一个临时的Query即可,而不要仍用原来的Query1' 如何用Update更新换一个临时的Query?具体的语句如何写? 谢谢!
----------------------------------------------
李平
作者:
2003/8/12 12:36:02
7楼:
var qryTemp : TQuery; begin qryTemp := TQuery.Create(Application); qryTemp.DatabaseName := '数据库别名'; //此处用 数据库别名 用你的程序中的实际名称代替 Query1.First; With qryTemp do Begin Close; Sql.Clear; Sql.Add('update carlsk set workname=''+edit1.text+''); sql.add('where carnum like''+edit2.text+''); Prepare; Execsql; End; Query1.Next; end; 至于将已修改的提交到数据库,可用 Query1.ApplyUpdates; 实现。
----------------------------------------------
-广袤璀璨的银河,永无止境的梦想(梦无止境游银河) 博客挂了……
作者:
2003/8/12 14:14:35
8楼:
iamdream: 你好!非常感谢你的帮助! 我把'Query1.ApplyUpdates;'放到Query1.next后面结果出现错误: 'query1:Not in cached update mode'.
----------------------------------------------
李平
作者:
zbl (布林)
★☆☆☆☆
-
普通会员
2003/8/12 17:56:13
9楼:
是不是你的DBF在连接的过程中就没有处进于可以更新的状态呀.?
----------------------------------------------
-
作者:
2003/8/13 8:22:55
10楼:
zbl: 你好! 可以更新的状态是指什么?
----------------------------------------------
李平