如何对选择出的记录进行修改(100分)

  • 主题发起人 主题发起人 georny
  • 开始时间 开始时间
G

georny

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位大侠如何定位一条记录并用修改这条记录。我用Ttable组件在没有用
Table1.open和Table1.edit之前可以正确定位这条记录而用了这两条语句之后用
Table1.locate语句之后再无法正确定位请问这是为什么?
另外,我改用TQuery组件来修改这条记录的话


query1.close;
query1.sql.Clear ;
query1.sql.Add ('select * from db.country');
query1.sql.add('where manno=Cuba');
query1.Prepare ;
query1.Open;
if query1.RecordCount=0 then
ShowMessage('cant find record');
query1.RequestLive:=true;
if not query1.CanModify then
ShowMessage('不能进行编辑')

在这种情况下为什么query1.CanModify总是返回false无法进行编辑,请问大家如何用TQuery
组件来完成对记录的修改。谢谢
 
加TUpdateSQL控件
 
将RequestLive设为True,CacheUpdate设为False,

query1.close;
query1.sql.Clear ;
query1.sql.Add ('select * from db.country');
query1.sql.add('where manno=Cuba');
query1.Prepare ;
query1.Open;
返回记录集就可以直接在DBGrid或DBedit中修改,修改完毕后移动记录指针就可以提交修改。
 
建议先用非DB的组件把库里面的数据读出来,然后进行修改,这样数据的校验、存盘、放弃都比较好控制。
 
将RequestLive设为True,CacheUpdate设为true吧,然后query1.Open;
query1.edit;
fieldbyname('manno').asstring:='China';
这修改的是当前指针指的记录。
 
table1.filter:='manno='+#39+'China'+#39;
table1.filted:=true;
 
多人接受答案了。
 
后退
顶部