大家快来救急啊!~~`谢谢!~~~`

mike1031 2004-04-21 01:50:10
用query,和datasource,dbgride连了一个数据库,当焦点在dbgride中某一行时,
我点击一个按钮,此行中某个字段的植自动加一,要写入数据库!数据库用sql server200。

...全文
117 35 打赏 收藏 转发到动态 举报
写回复
用AI写文章
35 条回复
切换为时间正序
请发表友善的回复…
发表回复
fim 2004-04-21
  • 打赏
  • 举报
回复
to jinjazz(我是jin)
看你的短消息
jinjazz 2004-04-21
  • 打赏
  • 举报
回复
jinjazzli@hotmail.com

公司不能上qq,我下班晚
fim 2004-04-21
  • 打赏
  • 举报
回复
我5点半就已经下班了,回家我不上网,你先留下QQ
jinjazz 2004-04-21
  • 打赏
  • 举报
回复
query1设置databasename为dbdemos(bde里自带的)
query1 select * from events
active 设true

Query1.RequestLive := True;

showmessage(booltostr(query1.CanModify));

query1.Edit;

有错?????????????就6步,那里错了
jinjazz 2004-04-21
  • 打赏
  • 举报
回复
我快下班了,回家和你聊,有空没有
fim 2004-04-21
  • 打赏
  • 举报
回复
我告诉你,你写得代码还是错的!
fim 2004-04-21
  • 打赏
  • 举报
回复
真的假的,留下你的QQ,我跟你聊聊
jinjazz 2004-04-21
  • 打赏
  • 举报
回复
谁帮我解释通那段vcl源码我给200分
jinjazz 2004-04-21
  • 打赏
  • 举报
回复
query1设置databasename为dbdemos(bde里自带的)
query1 select * from events
active 设true

Query1.RequestLive := True;

showmessage(booltostr(query1.CanModify));

query1.Edit;


先弹出0

然后抛出异常信息...

delphi7测试,table控件没有问题
jinjazz 2004-04-21
  • 打赏
  • 举报
回复
Query1.RequestLive := True;

仍然是false
fim 2004-04-21
  • 打赏
  • 举报
回复

to jinjazz(我是jin)
那你有没有看我这个贴子上所有的发言呢?你按照我前面说的,自己先试试,如何?
jinjazz 2004-04-21
  • 打赏
  • 举报
回复
我说得是 jinjazz(我是jin) 的说法是错误的

谢谢有人注意我的发言,补充一下我的代码是delphi7的vcl源码,你帮我解释一下为什么
showmessage(booltostr(query1.canmodify))
showmessage(booltostr(table1.canmodify))为什么不同
我没有深入研究过vcl源码
mike1031 2004-04-21
  • 打赏
  • 举报
回复
大家救救我啊!~~~~
再次无比感谢!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fim 2004-04-21
  • 打赏
  • 举报
回复
我说得是 jinjazz(我是jin) 的说法是错误的
mike1031 2004-04-21
  • 打赏
  • 举报
回复
现在可以运行了!~~~可数据库中的值没有改变!~
但我单步执行时,在运行中值是改变的,为什么啊:????
fim 2004-04-21
  • 打赏
  • 举报
回复
楼上说得绝对是错的,以前用D5的时候流行用BDE,用TQuery写过好几个程序都没听说过像楼上这样的说法。
socid 2004-04-21
  • 打赏
  • 举报
回复
to:mike1031(mike1031)
select只返回一条记录时query是readonly的
jinjazz 2004-04-21
  • 打赏
  • 举报
回复
看过了vcl代码可以确定query肯定不能用edit方法,用的话肯定报错

除非能让query.canmodify:=true;但这个不能直接付值,应为vcl不支持
jinjazz 2004-04-21
  • 打赏
  • 举报
回复
procedure TDataSet.Edit;
begin
if not (State in [dsEdit, dsInsert]) then
if FRecordCount = 0 then Insert else
begin
CheckBrowseMode;
CheckCanModify;
DoBeforeEdit;
CheckParentState;
CheckOperation(InternalEdit, FOnEditError);
GetCalcFields(ActiveBuffer);
SetState(dsEdit);
DataEvent(deRecordChange, 0);
DoAfterEdit;
end;
end;

procedure TDataSet.CheckCanModify;
begin
if not CanModify then DatabaseError(SDataSetReadOnly, Self);
end;

canmodify属性没有write,只有read 而且
query和table 的canmodify属性不同,前者false
所以query不能用edit方法

但我没看到为什么query和table的canmodify不同,高人指点
fim 2004-04-21
  • 打赏
  • 举报
回复
你的FieldName5怎么没有select?
加载更多回复(15)

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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