adoquery和dbgrid,datasource,删除一条记录的问题(50分)

  • 主题发起人 主题发起人 yongwang518
  • 开始时间 开始时间
Y

yongwang518

Unregistered / Unconfirmed
GUEST, unregistred user!
adoquery的locktype:=ltBatchOptimistic
对adoquery查询出来的记录集用adoquery.delete删除是出错
why?,怎样删除记录?
 
有人回答吗?应该是很简单吧
 
怎么没人帮忙呀?
 
谁来帮这个忙呀?
 
我试了能删的你自己多试几下
 
把错误贴出来
 
adoquery2.SQL.Clear;
adoquery2.SQL.Text:='select f_title as 标题,f_text,f_pubtime as 时间,f_source as 来源,f_author as 作者,f_keyword as 关键词,f_keyperson as 人物 from t_liter,t_area where t_liter.f_area=t_area.f_code and t_area.f_shortname='''+ combobox4.Text +''' and f_title like ''%'+ trim(edit2.Text) +'%'' and f_pubtime >=''' + datetostr(datetimepicker1.Date) + ''' and f_pubtime <''' + datetostr(datetimepicker2.Date) + ''' order by f_pubtime desc';



procedure TForm2.SpeedButton3Click(Sender: TObject);
begin
adoquery2.Delete;
//adoquery2.UpdateBatch;

end;
 
地球同志,我是将dbgrid邦定到datasource,通过adoquery查询到的结果显示到dbgrid
调用adoquery.delete时在dbgrid中是没有啦,但是在sql server数据库中并没有删除掉
 
SQL语句出错,你字段名并没定义是哪个表,或许是select t_liter.f_title ;
试试

 
如果加上adoquery2.UpdateBatch;
报错为无法为记录集定位,一些数据再最后读取后改变
 
不是程序的问题,是数据库的问题,我也遇到过这种情况,
一台数据库服务器有问题,换一台没有任何问题,WHY
 
是这样的:
adoquery2.sql.clear;
adoquery2.SQL.Text:='select f_title as 标题,f_text,f_pubtime as 时间,f_source as 来源,f_author as 作者,f_keyword as 关键词,f_keyperson as 人物 from t_liter where f_title like ''%'+ sqlstr +'%'' and f_pubtime >=''' + datetostr(datetimepicker1.date) +''' and f_pubtime <''' + datetostr(datetimepicker2.Date) + ''' order by f_pubtime desc';
没有关联
 
修改时就可以:
procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
adoquery2.Edit;
dbmemo1.Text:=memo1.Text;
adoquery2.UpdateBatch;
dbgrid1.SetFocus;
end;
 
快点帮帮我吧,这个问题困啦两天啦
 
你是不是用的delphi5啊
 
我用的是delphi6呀,你们能帮我试一下吗?
 
query是視圖控件,你刪除後後台數據庫中肯定還有呀!
用sql語句delete吧,你要刪的是原始數據!
 
不能用sql delete,如果用sql语句dbgrid还要刷新,我这是一个大数据库
 
ysai说的对,我换另一个表就可以删除掉
 
为什么呀?,我的那个表没有自动增长的id字段,不会是因为这个吧,不过是有主键的
 
后退
顶部