阿
阿魁
Unregistered / Unconfirmed
GUEST, unregistred user!
使用TAdoQuery删除数据,如下:
if adoQuerySybase.Active then adoQuerySybase.Active := false;
adoQuerySybase.SQL.Clear;
adoQuerySybase.SQL.Add('delete from ICON_RING where PHONE_CLASS='''+phone_class+''' and PHONE='''+PHONE+''' AND SMS_CLASS='''+SMS_CLASS+''' AND SMS_ID='''+SMS_ID+'''');
adoQuerySybase.execSql;
提示“msado..dll错误”。
我又采用另一种方式:
if adoQuerySybase.Active then adoQuerySybase.Active := false;
adoQuerySybase.SQL.Clear;
adoQuerySybase.SQL.Add('select * from ICON_RING where PHONE_CLASS='''+phone_class+''' and PHONE='''+PHONE+''' AND SMS_CLASS='''+SMS_CLASS+''' AND SMS_ID='''+SMS_ID+'''');
adoQuerySybase.Open;
while not adoQuerySybase.Eof adoQuerySybase.delete;
adoQuerySybase.Close;
提示“操作影响过多的行”(因为有重复记录所以在select时,记录集有可能不至一条);
改成adoQuerySybase.deleteRecords,提示不支持操作。
最终这样解决了问题:
if adoQuerySybase.Active then adoQuerySybase.Active := false;
adoQuerySybase.SQL.Clear;
adoQuerySybase.SQL.Add('select * from ICON_RING where PHONE_CLASS='''+phone_class+''' and PHONE='''+PHONE+''' AND SMS_CLASS='''+SMS_CLASS+''' AND SMS_ID='''+SMS_ID+'''');
adoQuerySybase.Open;
while not adoQuerySybase.Eof do
begin
try
adoQuerySybase.Delete;
except
//noop
end;
adoQuerySybase.Next;
end;
adoQuerySybase.Close;
问题是解决了,但不知道原因所在,那位高手帮忙,谢谢!
if adoQuerySybase.Active then adoQuerySybase.Active := false;
adoQuerySybase.SQL.Clear;
adoQuerySybase.SQL.Add('delete from ICON_RING where PHONE_CLASS='''+phone_class+''' and PHONE='''+PHONE+''' AND SMS_CLASS='''+SMS_CLASS+''' AND SMS_ID='''+SMS_ID+'''');
adoQuerySybase.execSql;
提示“msado..dll错误”。
我又采用另一种方式:
if adoQuerySybase.Active then adoQuerySybase.Active := false;
adoQuerySybase.SQL.Clear;
adoQuerySybase.SQL.Add('select * from ICON_RING where PHONE_CLASS='''+phone_class+''' and PHONE='''+PHONE+''' AND SMS_CLASS='''+SMS_CLASS+''' AND SMS_ID='''+SMS_ID+'''');
adoQuerySybase.Open;
while not adoQuerySybase.Eof adoQuerySybase.delete;
adoQuerySybase.Close;
提示“操作影响过多的行”(因为有重复记录所以在select时,记录集有可能不至一条);
改成adoQuerySybase.deleteRecords,提示不支持操作。
最终这样解决了问题:
if adoQuerySybase.Active then adoQuerySybase.Active := false;
adoQuerySybase.SQL.Clear;
adoQuerySybase.SQL.Add('select * from ICON_RING where PHONE_CLASS='''+phone_class+''' and PHONE='''+PHONE+''' AND SMS_CLASS='''+SMS_CLASS+''' AND SMS_ID='''+SMS_ID+'''');
adoQuerySybase.Open;
while not adoQuerySybase.Eof do
begin
try
adoQuerySybase.Delete;
except
//noop
end;
adoQuerySybase.Next;
end;
adoQuerySybase.Close;
问题是解决了,但不知道原因所在,那位高手帮忙,谢谢!