删除一张表中的所有纪录 ( 积分: 50 )

  • 主题发起人 主题发起人 Ray.D.Chou
  • 开始时间 开始时间
R

Ray.D.Chou

Unregistered / Unconfirmed
GUEST, unregistred user!
如何使用VCL+SQL语句删除一张表中的所有纪录,我已经查到相关的SQL语句“truncate table table_name”和“delete from table_name”。但是加入VCL的AdoQuery.SQL中运行总是报异常。我使用try except end;使之不提示异常。请问谁可以解决。
 
DELETE FROM table_name //删除全部记录
 
什么异常?提示什么?....
 
楼主把异常信息贴出来看看呢
 
有時如果表里面的數據太多的話,用delete from 可能會提時超時之類提示,你把commandtimeou設長點就行,
 
把你写的程序贴出来!让大家看看!
 
建議truncate table table_name,delete時需要考慮超時
 
按说不可能报错,你的是D几?
 
对于大数据量表,在ORACLE里一般用create table temp as(select * from 表)
drop 表
rename table temp to 表
很快的
 
delete from tablename
删除前先判断表里是否有记录
 
不会吧,没有听说过
 
楼主消失了。呵呵
直接DELETE FROM 表名
不就可以了吗?
出什么错?可以贴出来呀。
 
这么多人把楼主DEL了.
 
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('delete from 表1');
ADOQuery1.Open;
异常如下:
Debugger Exception Notification

Project Project1.exe raised exception class EOleException with message '当前提供程序不支持从单一执行返回多个记录集。'.Process
stopped. Use Step or Run to continue.

ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from 表1');
ADOQuery1.Open;
异常如下:
Debugger Exception Notification

Project Project1.exe raised exception class EOleException with message '无效的SQL语句;期待'DELETE'、'INSERT'、'PROCEDURE'、'SELECT'或'UPDATE'。'.Process
stopped. Use Step or Run to continue.
 
装MDAC2.8加补丁试试
 
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from 表1');
ADOQuery1.Open;
这是正确的,如果有问题,自省一下人品。
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('delete from 表1');
ADOQuery1.Open; //这句错误,如果语句不返回结果集,必须使用ADOQuery1.ExecSQL;
 
问题的真正原因在 ADOQuery1.Open 因为没有返回的数据集
改用 ADOQuery1.ExecSQL 应该没问题
或者
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('delete from 表1');
ADOQuery1.SQL.Add('select * from 表1');
ADOQuery1.Open;
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
501
import
I
后退
顶部