procedure Tbianjifm.BitBtn2Click(Sender: TObject);
var
jilu: String; //这个变量表示当前的记录
begin
jilu:=ADODataSet1.FieldByName('ccbh_id').AsString;
ADODataSet1.Close;
ADODataSet1.CommandText:='DELETE FROM s_zxx WHERE ccbh_id = jilu';
ADODataSet1.Post;
end;
var
jilu: String; //这个变量表示当前的记录
begin
jilu:=ADODataSet1.FieldByName('ccbh_id').AsString;
ADODataSet1.Close;
ADODataSet1.CommandText:='DELETE FROM s_zxx WHERE ccbh_id = jilu';
ADODataSet1.Post;
end;
解决方案 »
- 记事本和Word,如何根据当前的窗口获取该窗口打开的文件句柄?
- 如何在richedit中写入不同颜色的字?
- delphi做图表用什么控件?
- 如何把tStream中的字符串保存到当地文件中
- Delphi7中 Qreport 的 QRdbRichText 设定了字段为什么预览时不能显示呢?
- 关于ActiveForm对IE操作的两个问题,期待高手的解答
- 毕业设计 课题是分布式售票管理系统 请大家提供思路!非常谢谢大家!!
- 点击treeview结点前的"+"和"-"号是什么事件?见内!
- 国庆Delphi版的朋友也不能闲着呀!我们也聚会呀!(当然PLMM越多越好)!
- 关于Install Shield中的BDE和SQL Link
- 怎么动态添加query里面的fields
- 老公的忏悔!!!!!顶破你的头
我不明白你为什么要将adodataset先关闭,应该是adoquery吧~~~
这是我做的程序,你参考一下。
if messagedlg('请注意,是否要真的删除记录?',mtconfirmation,[mbyes,mbno],0)=mryes then
adodataset1.Delete ;
if MessageDlg('你确认要删除吗?', mtWarning, [mbOK, mbCancel], 0) = mrok then
ADODataSet1.Delete;
我什么要用SQL语句呢?我想在删除这条记录后,把另外一张表的数据也一起删除,因为这个是个主记录,另外一张表有好几条记录是跟着他的,有了他才有另外一张表的记录,大家肯定很明白我的意思了!所以我不能ADOTADASET.delete来,要用SQL语句把有关系的两个数据集联系起来!为了好理解,我说明如下:
表A:
出厂编号 名称 装配日期
1111 BMW760 2003-12-10
2222 BMWX5 2003-12-15
表B:
出厂编号 操作内容 操作者 操作工时
1111 油漆 张三 5
1111 绑金 李四 3
2222 油漆 张三 4
2222 绑金 李四 7
我如果删除了表A的
1111 BMW760 2003-12-10
这个记录,
那么表B的
1111 油漆 张三 5
1111 绑金 李四 3
也要一起删除
因为我在写的时候用事物同时写进去的谁可以帮助我把删除SQL语句写出,我自己加个事物就行了
var
jilu: String; //这个变量表示当前的记录
begin
jilu:=adoquery1.FieldByName('ccbh_id').AsString;
adoquery.Close;
adoquery.sql.Text:='DELETE FROM s_zxx WHERE ccbh_id = jilu';
adoquery.ExecSQL;
end;
这种方法不好
用pinkpiglm(透明) 的吧
procedure Tbianjifm.BitBtn2Click(Sender: TObject);
var
jilu: String; //这个变量表示当前的记录
begin
jilu:=ADODataSet1.FieldByName('ccbh_id').AsString;
ADODataSet1.Close;
ADODataSet1.CommandText:='DELETE FROM s_zxx WHERE ccbh_id = :jilu';
ADODataSet1.Parameters.ParamByName('jilu').Value:=jilu;
ADODataSet1.ExecSQL;
end;
var
jilu: String; //这个变量表示当前的记录
begin
jilu := ADOQuery1.FieldByName('ccbh_id').AsString;
ADOQuery1.Close;
ADOQuery1.SQL.Text := 'DELETE FROM s_zxx WHERE ccbh_id=' + QuotedStr(jilu);
ADOQuery1.ExecSQL;
end;
1111 BMW760 2003-12-10
这个记录,
应在
删除表B的
1111 油漆 张三 5
1111 绑金 李四 3
之后处理
create proceduer delete_cp
@cpbh varchar(20)
as
begin
delete a where cpbh=@cpbh
delete b where cpbh=@cpbh
end
go