菜鸟学习中,高手进:DBGrid中记录指针的移动问题
我用了DBGrid,datesource,table等组件,在DBGrid显示的记录中我想点击某个单元格时在数据表中指针就移动到该记录上,然后对该记录进行修改删除操作!
求代码,BCB的高手们帮忙解决下!小弟谢谢了!
[解决办法]
DBGrid中,一行记录中,相对数据库表有主键的,比如你DBGrid显示的是学生信息,而stuID(学号)已经在DBGrid显示了,那这种记录就比较好删除
DBGrid1->DataSource->DataSet->Delete();
你点击到DBGrid某行记录时,DB是可以定位的,不用你再去移动指针
2.如果DBGrid中显示的数据,是拼出来的,就是来自多个表,或者是经过SQL处理的数据,那么就要先根据FieldByName找出数据表的key,然后根据key进行SQL删除,做法如下:
AnsiString delid= DBGrid->DataSource->DataSet->FieldByName("StuID")->AsString; //要删除的ID
ADOQuery->SQL->Text = "delete from tb_stu where stuid= (' "+ delid+" ') "; //删除SQL
ADOQuery->ExecSQL(); //执行
// ****下面是删除后,要记得重新取得数据库表信息,进行同步
ADOQuery->SQL->Clear();
ADOQuery->SQL->Add("新的查询SQL");
ADOQuery->Open();