H
hurryman
Unregistered / Unconfirmed
GUEST, unregistred user!
{ 在作兩層結构MIS遇到問題,很急
用ADO連接后台SQL SERVER逕行數据庫操作,當前台有數据要提交時,我使用存儲過程來作
,當某個時候我要取消前面的添,刪,改的操作,我應該如何來作.
//********前台*******//
procedure TForm5.SpeedButton3Click(Sender: TObject); //update
begin
if (edit1.Text<>'') and (edit2.Text<>'') then
begin
with dataunit.DataModule1.spadddept do
begin
Parameters.paramByname('@tage').Value :=2;
Parameters.paramByname('@code').Value :=edit1.text ;
Parameters.paramByname('@names').Value :=edit2.text ;
ExecProc ;
if Parameters.parambyname('@rmessage').Value<> '數据修改成功!' then
begin
showmessage(Parameters.parambyname('@rmessage').Value) ;
edit1.SetFocus;
end
.......................
end;
procedure TForm5.SpeedButton5Click(Sender: TObject); //cancel
begin
with dataunit.DataModule1 do
begin
if (ADOConnection1.InTransaction) and
(messagedlg('確定要逕行取消操作嗎?',mtConfirmation, [mbYes, mbNo],0)= mrYes) then
begin
ADOConnection1.RollbackTrans ;
ADOConnection1.BeginTrans ;
end
else
MessageDlg('不能逕行取消操作', mtError, [mbOk], 0);
end;
end;
//********后台*********//
IF @tage=2 /*update*/
BEGIN
BEGIN TRAN
UPDATE dept SET dept=@code, deptname=@names WHERE dept=@code
UPDATE dept SET deptname=@names WHERE dept=@code
IF @@error<>0 GOTO error
COMMIT TRAN
SELECT @rmessage='數据修改成功!'
RETURN 0
END
//********遇到問題********//
當我"改" 的操作(update)完成后,我要取消 "改" 操作(cancel),卻提示'不能逕行取消操作',我
不太明白問題出在哪里,向大家請教 ,
}
用ADO連接后台SQL SERVER逕行數据庫操作,當前台有數据要提交時,我使用存儲過程來作
,當某個時候我要取消前面的添,刪,改的操作,我應該如何來作.
//********前台*******//
procedure TForm5.SpeedButton3Click(Sender: TObject); //update
begin
if (edit1.Text<>'') and (edit2.Text<>'') then
begin
with dataunit.DataModule1.spadddept do
begin
Parameters.paramByname('@tage').Value :=2;
Parameters.paramByname('@code').Value :=edit1.text ;
Parameters.paramByname('@names').Value :=edit2.text ;
ExecProc ;
if Parameters.parambyname('@rmessage').Value<> '數据修改成功!' then
begin
showmessage(Parameters.parambyname('@rmessage').Value) ;
edit1.SetFocus;
end
.......................
end;
procedure TForm5.SpeedButton5Click(Sender: TObject); //cancel
begin
with dataunit.DataModule1 do
begin
if (ADOConnection1.InTransaction) and
(messagedlg('確定要逕行取消操作嗎?',mtConfirmation, [mbYes, mbNo],0)= mrYes) then
begin
ADOConnection1.RollbackTrans ;
ADOConnection1.BeginTrans ;
end
else
MessageDlg('不能逕行取消操作', mtError, [mbOk], 0);
end;
end;
//********后台*********//
IF @tage=2 /*update*/
BEGIN
BEGIN TRAN
UPDATE dept SET dept=@code, deptname=@names WHERE dept=@code
UPDATE dept SET deptname=@names WHERE dept=@code
IF @@error<>0 GOTO error
COMMIT TRAN
SELECT @rmessage='數据修改成功!'
RETURN 0
END
//********遇到問題********//
當我"改" 的操作(update)完成后,我要取消 "改" 操作(cancel),卻提示'不能逕行取消操作',我
不太明白問題出在哪里,向大家請教 ,
}