Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Transaktsii / 3 сообщений из 3, страница 1 из 1
18.09.2002, 15:45:45
    #32051352
kanadets
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Transaktsii
Posle otkata transaktsii v hranimoi protsedure, zahoju v EM i delaiu selekt. Problema v tom chto ia ne viju zapisei i posle "Query time out" prihoditsea zakrivati okno prosmotra tablitsi.

V hranimoi protsedure delaiu namerenni nepravilinii spelling tablitsi, chtobi posmotreti proishodit li otkat transaktsii.

Posle ispravlenia imeni tablitsi (commit proishodit), bez problem smotru na tablitsu v EM.

V chem problema? Spasibo zaranee!
Izvinite za translit
...
Рейтинг: 0 / 0
18.09.2002, 15:58:29
    #32051355
Slava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Transaktsii
привели бы тестирующий код
Ну вообще у меня такое было. Я решил, что так как моя транзакция затрагивала довольно большой объем данных она долго откатывалась. Хотя применялась она гораздо быстрей чем откатывалась! "Query Time Out" я тоже наблюдал в EM.
...
Рейтинг: 0 / 0
18.09.2002, 17:29:05
    #32051410
kanadets
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Transaktsii
SET XACT_ABORT ON

BEGIN TRAN


INSERT tbl_ccs_MoneyTransactions ( Amount, PaymentTypeCode, CardTypeCode, ExpDate, TransactionTime )
VALUES (@Amount,@PaymentTypeCode,@CardTypeCode, @ExpDate,@TransactionTime)
SET @MoneyTransactionID=@@IDENTITY
IF @@ERROR<>0
BEGIN
--RAISERROR('ROLLBACK:MONEY TRANSACTION BLOCK',16,1)
ROLLBACK TRAN
RETURN 0
END

INSERT tbl_ccs_don_debug (step) VALUES ('insert_moneytransaction')

SELECT @dPersonID=PersonID FROM dbo.tbl_ccs_Individuals WHERE (LOWER(Firstname)=LOWER(@dFirstName)) AND (LOWER(LastName)=LOWER(@dLastName)) AND (StreetNumber=@dStreetNumber) AND (LOWER(StreetName)=LOWER(@dStreetName)) AND (UnitNumber=@dUnitNumber) AND (LOWER(Postal)=LOWER(@dPostal)) AND (LOWER(City)=LOWER(@dCity))

IF @@ROWCOUNT=0

BEGIN --Insert Donor Data stage

INSERT INTO dbo.tbl_ccs_Individuals (GenderCode, PrefixCode, FirstName, MiddleInitial, LastName, StreetNumber, StreetName, UnitNumber, BuildingName, Address2, City, Postal, ProvinceCode, ProvinceOther, CountryCode, LanguageCode, HomePhoneArea, HomePhoneNumber, BizPhoneArea, BizPhoneNumber, BizPhoneExt, FaxPhoneArea, FaxPhoneNumber, FaxPhoneExt, CellPhoneArea, CellPhoneNumber, Organization, Email, BirthDate,Password)
VALUES (@dGenderCode, @dPrefixCode, @dFirstName, @dMiddleInitial, @dLastName, @dStreetNumber, @dStreetName, @dUnitNumber, @dBuildingName, @dAddress2, @dCity, @dPostal, @dProvinceCode, @dProvinceOther, @dCountryCode, @dLanguageCode, @dHomePhoneArea, @dHomePhoneNumber, @dBizPhoneArea, @dBizPhoneNumber, @dBizPhoneExt, @dFaxPhoneArea, @dFaxPhoneNumber, @dFaxPhoneExt, @dCellPhoneArea, @dCellPhoneNumber, @dOrganization, @dEmail, @dBirthDate,@dPassword)
SET @dPersonID=@@IDENTITY
IF @@ERROR<>0
BEGIN
--RAISERROR('ROLLBACK:DONOR BLOCK',16,1)
ROLLBACK TRAN
RETURN 0
END
END

INSERT tbl_ccs_don_debug (step) VALUES ('insert_donor')
@rPersonID=PersonID FROM dbo.tbl_ccs_Individuals WHERE (LOWER(Firstname)=LOWER(@rFirstName)) AND (LOWER(LastName)=LOWER(@rLastName)) AND (StreetNumber=@rStreetNumber) AND (LOWER(StreetName)=LOWER(@rStreetName)) AND (UnitNumber=@rUnitNumber) AND (LOWER(Postal)=LOWER(@rPostal)) AND (LOWER(City)=LOWER(@rCity))
IF @@ROWCOUNT=0
BEGIN
INSERT INTO dbo.tbl_ccs_Individuals (GenderCode, PrefixCode, FirstName, MiddleInitial, LastName, StreetNumber, StreetName, UnitNumber, BuildingName, Address2, City, Postal, ProvinceCode, ProvinceOther, CountryCode, LanguageCode, HomePhoneArea, HomePhoneNumber, BizPhoneArea, BizPhoneNumber, BizPhoneExt, FaxPhoneArea, FaxPhoneNumber, FaxPhoneExt, CellPhoneArea, CellPhoneNumber, Organization, Email, BirthDate,Password)
VALUES (@rGenderCode, @rPrefixCode, @rFirstName, @rMiddleInitial, @rLastName, @rStreetNumber, @rStreetName, @rUnitNumber, @rBuildingName, @dAddress2, @rCity, @rPostal, @rProvinceCode, @rProvinceOther, @rCountryCode, @rLanguageCode, @rHomePhoneArea, @rHomePhoneNumber, @rBizPhoneArea, @rBizPhoneNumber, @rBizPhoneExt, @rFaxPhoneArea, @rFaxPhoneNumber, @rFaxPhoneExt, @rCellPhoneArea, @rCellPhoneNumber, @rOrganization, @rEmail, @rBirthDate,@rPassword)
SET @rPersonID=@@IDENTITY
IF @@ERROR<>0
BEGIN
-- RAISERROR('ROLLBACK:RECIPIENT BLOCK',16,1)
ROLLBACK TRAN --rollback transaction after not inserting a recipient
RETURN 0
END
END
INSERT tbl_ccs_don_debug (step) VALUES ('insert_recipient')

INSERT INTO dbo.tbl_ccs_Donations (FromID,ToID, Amount,MoneyTransactionID, DonationTypeCode,ReceiptTypeCode)
VALUES (@dPersonID,@rPersonID,@Amount,@MoneyTransactionID,@DonationTypeCode,@ReceiptTypeCode)
SET @DonationID=@@IDENTITY
IF @@ERROR<>0
BEGIN
--RAISERROR('ROLLBACK:DONATION BLOCK',16,1)
ROLLBACK TRAN
RETURN 0
END
INSERT tbl_ccs_don_debug (step) VALUES ('insert_donation')

INSERT dbo.tbl_ccs_Cards (DonationID,PostcardPatternID,Occasion,Personalization,[From], Message)
VALUES (@DonationID,@PostcardPatternID, @Occasion,@Personalization, @From,@Message)

IF @@ERROR<>0
BEGIN
--RAISERROR('ROLLBACK:CARD BLOCK',16,1)
ROLLBACK TRAN
RETURN 0
END
ELSE
BEGIN
INSERT tbl_ccs_don_debug (step) VALUES ('insert_card')
IF @@ERROR<>0
BEGIN
-- RAISERROR('ROLLBACK:DEBUG BLOCK',16,1)
ROLLBACK TRAN
RETURN 0

END
ELSE
BEGIN

COMMIT TRAN
RETURN 1

END
END[src][/src]
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Transaktsii / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]