使用Diamond Access控件操作Access2000数据库的问题(100分)

  • 主题发起人 主题发起人 cauchen
  • 开始时间 开始时间
C

cauchen

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用Diamond Access控件(1.90版)对一个数据库进行操作,数据库中表的名称为tableindex,
此表有两个字段,id(数字),text(文本),当我从表中删除记录时,总是提示Dataset not in
edit or inert mode,但此时查看数据库,发现记录已被删除,我的程序是这样的:
daotable1.first;
daotable1.delete;
daotable1.post;
我改用Daoquery控件,使用SQL语句来进行删除操作,这是会提示Invalid operation,此时查看
数据库,同样发现记录已被删除。
另外,进行insert,select,update操作时未出现任何问题。请各位大侠帮助解决,100分敬上。
 
我的也一样
 

try
daotable1.first;
daotable1.delete;
daotable1.post;
except
end;就不会报错了

 
delete不需要post,否则就出错(你可以跟踪一下,出错是在post时出错的!)
 
晚了!!!
同意hhzh426.
 
按Tyrael的方法,我解决了Daotable组件的问题,我会马上把分送给你的。但是Daoquery组件
的问题依然没有解决,毕竟用sql语句更方便一些,谁能再帮助想想办法?
 
可做一个过程来执行SQL的DELETE,UPDATE等,只传SQL语句就可。
procedure TPubModule.Exec_SQL(sql:string);
begin
if DAOquery1.Active then DAOquery1.Close;
DAOquery1.sql.clear;
DAOquery1.sql.add(sql);
DAOquery1.Execute(0);
DAOquery1.close;
end;

用如:str:='delete from table1 where ....';
with daoquery1 do exec_sql(str);
 
access97不存在问题,2000的不知道了
 
谢谢大家,问题解决了!
 
后退
顶部