Table的EmptyTable方法删除记录的几个问题(5分)

  • 主题发起人 主题发起人 mb21cn
  • 开始时间 开始时间
M

mb21cn

Unregistered / Unconfirmed
GUEST, unregistred user!
[:)]我是delphi数据库编程初学者,我用Table的EmptyTable方法删除Paradox格式表中的全部记录,
在运行使有如下提示:
EBDEngineError with message:'Table cannot be opened for exclusive use.'
在将exclusive属性改为True后,有出现如下提示:
EBDEngineError with message:'Table is busy'
程序段如下:
Table1.active:=false;
table1.emptytable;
另外,我用SQL语句进行关联查询是有如下提示:
Single row subquery procedured more than one row
请高手指点迷津!!!
 
1.用sql:delete from 表名.
2.您是如何关联的?
 
这样:
Table1.active:=false;
table1.exclusive :=True;
table1.emptytable;
Table1.exclusive:=false;
 
Table1.close;
Table1.emptytable;
table1.open;
 
应该说在默认的控件状态下,意即直接拖放Table表控件而不对其除DatabaseName,
TableName之外的任何属性进行修改,在我这里一切正常,没有出现过类似问题,是不
是考虑一下独占性设置的问题?
 
Error:Single row subquery procedured more than one row
请是因为返回的结果不是唯一的(超过一个),而你的SQL语句需要你返回一个唯一值。
例如:update tablename1 set field1 = (select field2 from tablename2 where xxx = yyy)
此时子查询(select field2 from tablename2 where xxx = yyy)返回的结果超过一个,即出错。
明白?别忘记给分。

 
All your solutions are nonsense! Please give the verified solution .
 
后退
顶部