关于TQuery 的问题

wai_lf 2000-08-09 04:16:00
本人用tquery控件时,
一,调用refresh方法时,提示非法操作因为没有建唯一性索引;
二,当用DBgird修改记录,然后调用ApplyUpdates是提示失败;
请问以上是什么原因?怎么解决?
...全文
344 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
spsun 2000-11-23
  • 打赏
  • 举报
回复
1) 在表里加一个 自己动记数字段就可以 refresh 了! 名字随便
2) 我也想知道, 我用 ODBC 连 Access 和 AS/400 时也不能修改.(can't modify a read-only dataset) 有谁知道了, 也请告诉我解决方法.(必须用 ODBC 和 TQuery)
pjy 2000-08-10
  • 打赏
  • 举报
回复
我知道用tquery先close再open比较慢,但我试过refresh方法,好象不行!wai_lf如果解决,请通告一声!
还有:对于refresh方法,DELPHI会只把不同的记录加入前台吗?我估计DELPHI运行和先CLOSE,再OPEN机制是一样的!请各位网友指点!
wai_lf 2000-08-10
  • 打赏
  • 举报
回复
谢谢各位,我的第二个问题自己已经解决。
致:wolfop:我的table已经建立了唯一性索引,为什么还不行;
致:pjy,cybercorba,zsr:对于数据量很大时,这样是很慢的,一般不能满足速度要求;
致:lotto:我用的是oracle,而且我同事的refresh(三层结构)可以用,而我们用同一个数据库,我的就是不行。
wolfop 2000-08-10
  • 打赏
  • 举报
回复
建一个primary key或者unique key
pjy 2000-08-10
  • 打赏
  • 举报
回复
一、使用Tquery时,使用close然后open比较保险!
二、使用Dbgrid修改记录后,移开焦点时,DELPHI自动会保存!显式保存用post。
cybercobra 2000-08-10
  • 打赏
  • 举报
回复
1.query的刷新要先Close后Open;如果需要再用locate重新定位
2.不知道
chenlh 2000-08-10
  • 打赏
  • 举报
回复
这种情况好象要把tquery的requestlive属性改为true吧
lotto 2000-08-09
  • 打赏
  • 举报
回复
一、某些数据库不支持TAble.refresh;
二、只有很少的数据库支持用Query修改其内容再回存,劝你还是使用Table吧,注意要将cacheupdates设置为True;
zsr 2000-08-09
  • 打赏
  • 举报
回复
对于Tquery,close后open;
第二个问题看不明白。
「已注销」 2000-08-09
  • 打赏
  • 举报
回复
二,当用DBgird修改记录,然后应该调Post进行保存吧?

5,386

社区成员

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

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