这sql语句哪里出错呢?(25分)

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

okzjq

Unregistered / Unconfirmed
GUEST, unregistred user!
delphi6+access2000+adoquery
用下面语句删除一个班级时,
adoQuery.Active:=false;
adoQuery.SQL.Clear;
adoQuery.SQL.Add('delete from SXSJK '); //SXSJK 为学生简况
adoQuery.SQL.Add('where BJDH='''+'养殖1001''');
adoQuery.Active:=true;
弹出出错信息:对像或提供者不能执行所需的操作?

 
adoQuery.SQL.Add('where BJDH='''+'养殖1001''');
这一句错了。
应该是:
adoQuery.SQL.Add('where BJDH=''养殖1001''');
 
AdoQuery.EXECSQL;
 
第一行用,adoquery.close;最后一行用,adoquery.EXECSQL;
第二行SQL语句用'where BJDH=养殖1001' 或者用'where BJDH='+''''+'养殖1001'
试试看吧,一般在运行期不用ACTIVE属性,用CLOSE,OPEN。
 
单引号用#39或是Chr(39)来代,这样好看懂
adoQuery.Active:=false;
adoQuery.SQL.Clear;
adoQuery.SQL.Add('delete from SXSJK '); //SXSJK 为学生简况
adoQuery.SQL.Add('where BJDH='+#39+'养殖1001');
//adoQuery.Active:=true;
AdoQuery.EXECSQL;


 
AdoQuery.EXECSQL
这条语句不返回结果集,不能直接open,其他的像update,insert也有同样问题
 
1、ExecSQL
2、SXSJK 与 where 之间要有空格哟。
 
adoquery.close;
adoQuery.SQL.Clear;
adoQuery.SQL.Add('delete from SXSJK '); //SXSJK 为学生简况
adoQuery.SQL.Add(' where BJDH='''+'养殖1001''');//这一句我觉得没有问题
adoquery.execsql;
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
928
SUNSTONE的Delphi笔记
S
I
回复
0
查看
795
import
I
D
回复
0
查看
844
DelphiTeacher的专栏
D
后退
顶部