建立触发器啊!
或者这样吧
with Query do
begin
Close;
Sql.Clear;
Sql.Text := 'BEGIN TRANSACTION '+
' DECLARE @MyCode VarChar(10),'+
' @MyName varChar(20) '+
' SELECT @MyCode = :MyCode, '+
' @MyName = :MyName '+
' UPDATE TableA SET MyName = @MyName '+
' WHERE MyCode = @MyCode '+
' UPDATE TableA SET MyName = @MyName '+
' WHERE MyCode = @MyCode '+
'IF @@error=0 COMMIT TRANSACTION '+
'ELSE ROLLBACK TRANSACTION ';
ParamByName('MyCode').AsString := '123123';
ParamByName('MyName').AsString := '人民币';
ExecSQL;
end;
或者这样吧
with Query do
begin
Close;
Sql.Clear;
Sql.Text := 'BEGIN TRANSACTION '+
' DECLARE @MyCode VarChar(10),'+
' @MyName varChar(20) '+
' SELECT @MyCode = :MyCode, '+
' @MyName = :MyName '+
' UPDATE TableA SET MyName = @MyName '+
' WHERE MyCode = @MyCode '+
' UPDATE TableA SET MyName = @MyName '+
' WHERE MyCode = @MyCode '+
'IF @@error=0 COMMIT TRANSACTION '+
'ELSE ROLLBACK TRANSACTION ';
ParamByName('MyCode').AsString := '123123';
ParamByName('MyName').AsString := '人民币';
ExecSQL;
end;
解决方案 »
- 请教一个dbgrid的问题
- 请问如何实现对TDBMemo部件中显示的文本信息不能够进行剪切、拷贝和粘贴操作?
- 做了个组件的练习,但起不到预期的效果,求助,在线等,谢谢!!
- 各位高手好 提一个非常非长奇怪的问题?帮忙回答一下
- 大家帮我找一下FastNet For Delphi 7这个组件
- showmessage(IntToStr(pos(resStr,tmpStr)))这句话是什么意思?能详细解释一下吗?
- reintroduce和overload有什么区别吗?
- 如何顺序取得一系列数值的值?
- 怎样清空table中的所有记录
- 关于数据库编程的一个小问题
- 如何使用xpmenu做出像officexp那样的菜单
- sql中输入整形数据及momey数据又遇到了问题,请帮帮忙
from B b
join A a on a.Id = b.Id
update set B.币别=A.币别 A from A,B where B.号码=A.号码
但是A表中号码值应该是唯一的。
adodataset1,adodataset2分别对应A,B表
///设置a,b表为master/detail关系,B为主表,如下
//可以在设计阶段进行
adodataset1.commandtext:='select * from a';
adodatasource1.dataset:=adodataset1;
adodataset2.commandtext:='select * from b where 号码=:号码';
adodataset2.datasource:=adodatasource1;
//编码
procedure button1click(sender:tobject)
var i:integer;
begin
while not adodataset2.eof do
begin
if adodataset1.recordcount>0 then
///若从表中有关联记录,则修改记录一中的信息
begin
if not (adodataset2.state in [edit,insert]) then
adodataset2.edit;
for i:=0 adodataset2.fields.count do
begin
adodataset2.fields[i].value:=adodataset1.fields[i].value;
end;
adodataset2.post;
end;
end;
showmessage('更新完成');
end;