首先,如下的语句在Access中直接执行时,是正常的。
如:Delete * from temp where Bank not like '*汇*'。删除了指定的记录 但通过delphi中传入Access后执行,就出现了奇怪的现象,上面的Delete语句直接将整张表删除,完全忽略了where条件。
Delphi语句如下:
tem:= 'Delete * from temp where Bank not like '+'*汇*'+'';
ExecSql(tem);procedure ExecSql(SqlStr: string);
begin
aqy_temp.Close;
aqy_temp.SQL.Text := SqlStr;
aqy_temp.ExecSQL;
end;注:aqy_temp只是一个普通的Query控件。
为神马?为神马啊?
如:Delete * from temp where Bank not like '*汇*'。删除了指定的记录 但通过delphi中传入Access后执行,就出现了奇怪的现象,上面的Delete语句直接将整张表删除,完全忽略了where条件。
Delphi语句如下:
tem:= 'Delete * from temp where Bank not like '+'*汇*'+'';
ExecSql(tem);procedure ExecSql(SqlStr: string);
begin
aqy_temp.Close;
aqy_temp.SQL.Text := SqlStr;
aqy_temp.ExecSQL;
end;注:aqy_temp只是一个普通的Query控件。
为神马?为神马啊?
两位兄弟似乎没在Access中用过模糊查询。
Access中有效的关键字是*,不是%。
我以前也没用过Access,熟悉Access中模糊查询的兄弟请不吝赐教。
分不够再加。
Access中有效的关键字是*,不是%。
是不是那语句其它地方也不一样
tem:= 'Delete * from temp where Bank not like '+'''*汇*''';
Delphi语句如下:
tem:= 'Delete * from temp where Bank not like '+'*汇*'+'';
把*该成%
tem:= 'Delete * from temp where Bank not like ' + quotedstr('*汇*');
ExecSql(tem);
SauntErSos:谢谢你。问题解决了。你说到了关键点,不过还是不明白为神马Access非要这么搞?
qwqw8000,yongerman: 你们说的也对。呵呵