ACCESS不支持这样的SQL语句吗?
Delete from Table1 where Table1.Field1="AA"
这个SQL语句,ACCESS数据库不支持吗?
程序运行时报错:对象或提供者不能够支持所需的操作。
问题点数:20、回复次数:8Top
1 楼samcrm(镜花水月)回复于 2003-09-04 11:08:25 得分 0
是di,不支持Top
2 楼siaosa()回复于 2003-09-04 11:10:38 得分 0
那如果要执行删除操作应该怎么做?Top
3 楼czmi(czmi)回复于 2003-09-05 16:43:38 得分 5
Query1.close;
Query1.sql.clear;
Query1.sql.add('Delete from Table1 where Table1.Field1='+#39+"AA"+#39);
Query1.open;
就得啦Top
4 楼czzw(山水)回复于 2003-09-05 21:33:02 得分 5
access的字符串用的是双引号,而delphi用的单引号
所以应该这样
delete from table where table1.field='"AA"';
如果AA是有双引号的话Top
5 楼killlaoli(菜鸟)回复于 2003-09-05 21:39:59 得分 5
谁说不支持啊,access不会这么弱的...
在access里,单双引都是没问题的...Top
6 楼songbin181818(songbin)回复于 2003-09-05 22:46:42 得分 5
应该这么做:
Query1.close;
Query1.sql.clear;
Query1.sql.add('Delete from Table1 where Table1.Field1=QuotedStr('AA'));
Query1.open;
就得啦Top
7 楼Rmuyu(小木鱼)回复于 2003-09-05 22:49:58 得分 0
是的,不支持,有人说对了.Top
8 楼zhusongdong(大漠孤烟)回复于 2003-09-06 18:12:54 得分 0
Access是支持这样的SQL的,问题是你使用数据库方问方式是什么
如果是Ado可以这样写语句
FieldName 须是文本型字段
AdoConnection.execture('delete from Tablename where Fieldname = ''AA''');
这样就可以干净利落的删除记录了。
如果是BDE方式
if Table1.Locate('FieldName','AA',[loCaseInsenssitive]) then
begin
Table1.Delete;
Table1.Post;
end;Top




