救命!!!!!(200分)

  • 主题发起人 主题发起人 oliveyl1
  • 开始时间 开始时间
O

oliveyl1

Unregistered / Unconfirmed
GUEST, unregistred user!
这种提示一般是为什么?
project raised exception class edatabaseerror with message'
cannot perform operation on an open dataset',process stopped.我做了一个
用户密码表,在进入一个界面之前我是动态生成了sql查询了对应于输入用户名
的密码并进行判断.(在我进去以后这个sql是删掉了的)可以.
但是我进入以后有一项是作修改密码,
我试着也同样用动态形成sql查到相应密码项但改不了,提示始终
dataset都不是编辑状态,尽管我已经将其requestlive改成了true;
后来我就用动态形成一个table,把它的edit,readonly属性都做了修改.
然后用setkey(),gotokey()来做.
我是这样写的
table->setkey()
table->fieldbyname("username")->asstring="...";
table->gotokey()
也试过中间用table->fields->field[0]->asstring=...来代替
都不行,都是上面的错误.
我想请问key和表中的主键是不是一样的?
table用来查的索引和建表时的secondary index有什么关系.
请高手指点一下这几个东西有什么关系,怎么用.
还有我这个问题出在哪里?
 
你单步跟踪到程序出错的那行就知道是什么问题了,先设一断点
 
将代码
table->setkey()
table->fieldbyname("username")->asstring="...";
table->gotokey()
换为
table->locate("username", "?????", 0);
 
忘了件事!
CB3好像不支持 locate, CB4 支持!
 
是不是在SQL中有’order by XXXX ' 的排序行!!!有就不能修改,要用SQLupdate了
 
不要这样做啊,非交互式修改数据最好用 TQuery + Update 。

Query.SQL.Add('Update Table Set Password = ''XXX'' Where UserName = ''YYY''');

肯定不会有问题了。
 
多人接受答案了。
 
后退
顶部