急需修改query结果集记录的一段代码!!!

netsong 2001-08-27 09:14:05
...全文
231 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
netsong 2001-08-31
  • 打赏
  • 举报
回复
呵呵,有了
3ks very much
chechy 2001-08-30
  • 打赏
  • 举报
回复
TUpdateSQL中不就指明了程序该如何更新吗?我觉得你可以启动SQL Monitor看看提交时的SQL语句,应该对你有启发。
netsong 2001-08-30
  • 打赏
  • 举报
回复
没有明白。程序并不知道更新的条件呀
chechy 2001-08-30
  • 打赏
  • 举报
回复
我建议你在设计阶段就将SQL语句写道Query1的SQL中,然后将Query1的UpdateObject连接到UpdateSQL上。双击UPdateSQL,这是右边的KeyFields和UpdateFields都会出现sno, bz两个字段。左边TableName应该是t_abc。
我想KeyFields中应该选中sno,然后再UpdateFields中全部选中,按下Generate SQL按钮,SQL就都生成好了。按OK按钮关闭对话框。

如果你的Query没有CacheUpdate,那么Post的时候Delphi就会用UPdateSQL中的语句更新数据库,否则就是ApplyUpdates的时候调用。

明白了吗?
netsong 2001-08-30
  • 打赏
  • 举报
回复
这是部分代码
netsong 2001-08-30
  • 打赏
  • 举报
回复
to chechy:干脆你写几句代码给我吧。
使用query1和updatesql1,
query1.sql.add(select sno, bz from t_abc);

while not query1.eof do
begin
if flag=1 then 将当前记录的bz字段改为'0';
query1.next;
end;

如何实现?
chechy 2001-08-29
  • 打赏
  • 举报
回复
TUpdateSQL有没有指定正确的SQL语句?
netsong 2001-08-29
  • 打赏
  • 举报
回复
用了chechy的第一个办法,
query.edit
query.fieldbyname.asstring:='xxx';
query.post
但是结果没有更新
riddler 2001-08-29
  • 打赏
  • 举报
回复
up
chechy 2001-08-29
  • 打赏
  • 举报
回复
swazn_yj(燕子) 的语句也有问题,正确的是:
begin
Query1.SQL.clear;
Query1.SQL.Add(update .....(自己写字段));
query1.execsql;
end
chechy 2001-08-29
  • 打赏
  • 举报
回复
将Query的RequestLive设为True。如果不行,在加一个TUpdateSQL,让TQuery的UpdateObject连接上这个Query。这样Query就不是ReadOnly的了。
hericong 2001-08-29
  • 打赏
  • 举报
回复
netsong的说法好象没道理,燕子写的是对的
netsong 2001-08-29
  • 打赏
  • 举报
回复
不能修改,提示query为read-only
Tense 2001-08-29
  • 打赏
  • 举报
回复
up
chechy 2001-08-29
  • 打赏
  • 举报
回复
你自己设定一下SQL语句不就行了吗?难道它自己不能更新吗?
netsong 2001-08-29
  • 打赏
  • 举报
回复
没问题呀,通过了,当然是这样写的:
triggerquery.FieldByName('BZ').asString:='1'

那岂不是我还要传它的关键字过去,并通过update语句更新它?
chechy 2001-08-29
  • 打赏
  • 举报
回复
你的程序
query.fieldbyname.asstring:='xxx'
有些问题吧,最起码编译关是过不了的。
修改TUpdateSQL控件的东西与程序无关。上述程序无须修改。只是Post的时候,Delphi会调用TUpdateSQL中相应的SQL去更新数据库。明白了吗?
netsong 2001-08-29
  • 打赏
  • 举报
回复
就象我上边所说的情况改怎么写?
chechy 2001-08-29
  • 打赏
  • 举报
回复
你双击一下TUpdateSQL控件,有编辑器,指定起来很方便。打:的,在提交时都会进行参数绑定的。这个由Delphi自己做,你不用操心。
netsong 2001-08-29
  • 打赏
  • 举报
回复
怎么指定?在ModifySQL中添加脚本吗?我的修改是有条件的呀。即
while not query.eof do
begin
if myfunction(query.fields[0]) then
begin
query.edit
query.fieldbyname.asstring:='xxx';
query.post
end;
end;

并没有现成的update语句可用
加载更多回复(6)

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧