ورود

View Full Version : پیغام خطا در Commit کردن



Saeid59_m
یک شنبه 05 خرداد 1387, 08:19 صبح
بانک اطلاعاتی من SQL 2005 است
کد برنامه :

try
MyData.ADOCommand1.CommandText:='Begin Transaction';
MyData.ADOCommand1.Execute;
//**********
Str_Query:='UPDATE Users '+
'SET IP_Login='+QuotedStr('')+
' , Login_now=0 , Login_Date='+QuotedStr('')+' , Rec_Use='+QuotedStr('')+
' WHERE User_ID='+inttostr (Online_Rec.User.ID);

MyData.ADOCommand1.CommandText:= Str_Query;
MyData.ADOCommand1.Execute;
//**********
MyData.ADOCommand1.CommandText:='Commit Transaction';
MyData.ADOCommand1.Execute;


except
ShowMessage ('Error !');
end;

این پیغام خطا رو می ده .

amin_alexi
یک شنبه 05 خرداد 1387, 10:07 صبح
فکر کنم اگه این مدلی بنویسی درست بشه !!


MyData.ADOCommand1.CommandText:='Begin Transaction'+Str_Query+'Commit Transaction';
MyData.ADOCommand1.Execute;

همه رو تو یک دستور SQL اجرا کن ...

amin_alexi
یک شنبه 05 خرداد 1387, 10:34 صبح
یا میتونی از دستورات استفاده کنی اینا کاماتره !!!


Begin Transaction
GO
Update Code Here
Go
Delete Code Here
Go
Insert Code Here
Go
if @@Error>1 Rollback Transaction
Else Commit Transaction

amin_alexi
یک شنبه 05 خرداد 1387, 10:34 صبح
یا میتونی از دستورات استفاده کنی اینا کاماتره !!!


Begin Transaction
GO
Update Code Here
Go
Delete Code Here
Go
Insert Code Here
Go
if @@Error>1 Rollback Transaction
Else Commit Transaction

Saeid59_m
دوشنبه 06 خرداد 1387, 07:38 صبح
دستورات کاملاً درست بود .
مشکل این بود که خاصیت Keep Connection مربوط به Ado Connection رو روی False تنظیم کرده بودم .
از راهنمائی دوستان بسیار ممنون .

babak_delphi
دوشنبه 06 خرداد 1387, 12:29 عصر
البته می تونید به این صورت هم استفاده منید


AdoConnection.BeginTrans;
TRY
.
.
.
AdoConnection.Commit;
Except
Adoconnection.RollBack;
end;

در SQL Server 200 که جواب می داد
اینجا هم فکر نکنم مشکلی باشه