Решение проблемы в Магазине и Торнадо

Автор mixaonline, 2011 Июль 17, 13:20

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] mu onlineсерверные файлы MUбафыторнадопроблемы при покупкекеш шоп

mixaonline

проблема в том что покупаешь допустим баф в кеш шопе он должен держатся сутки,а за место етого он слетает после каждого релога,вот что дата сервер пишет

06:08:39p WZ_PeriodItemInsert 9, 'Deks', 6699, 2, 6, 0, 1440, '2011-7-14 18:8'
06:08:39p (2) SQLSTATE:22007, Diagnosis:[Microsoft][ODBC SQL Server Driver][SQL Server]Преобразование типа данных varchar в тип данных smalldatetime привело к выходу значения за пределы диапазона.

ковырял базу переносил процедуры и столбцы с рабочих баз,сравнивал,не помогает ,может ктото знает в чом проблема?

ProblemOfficer

Цитироватьsmalldatetime

Смотри процедуру.

mixaonline

та смотрел,менял в просто дата,непомогает,ошибка или остается или начинает другая вылазить вот смотри саму процедуру ета  процедура на каторую сылается WZ_PeriodItemInsert
Спойлер
USE [muonline]
GO
/****** Object:  StoredProcedure [dbo].[WZ_PeriodItemInsert]    Script Date: 07/17/2011 13:32:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER Procedure [dbo].[WZ_PeriodItemInsert]

@UserGuid      int,
@CharacterName   varchar(10),
@ItemCode      int,
@OptionType      tinyint,
@EffectType1      tinyint,
@EffectType2      tinyint,
@TotalUsePeriod   int,
@ExpireDate      varchar(20)
AS
BEGIN
DECLARE @ErrorCode int
DECLARE @PeriodItemIndex int

SET @ErrorCode = 0
SET @PeriodItemIndex = 0

SET XACT_ABORT ON
SET NOCOUNT ON

BEGIN TRANSACTION

SELECT  @PeriodItemIndex = PeriodIndex FROM T_PeriodItem_Info WHERE UserGuid = @UserGuid AND CharacterName = @CharacterName AND OptionType = @OptionType AND UsedInfo = 1

IF ( @PeriodItemIndex != 0 )
BEGIN
UPDATE T_PeriodItem_Info SET UsedInfo = 0 WHERE UserGuid = @UserGuid AND CharacterName = @CharacterName AND OptionType = @OptionType AND UsedInfo = 1
END

INSERT INTO T_PeriodItem_Info (UserGuid, CharacterName, ItemCode, OptionType, EffectType1, EffectType2, LeftTime, BuyDate, ExpireDate, UsedInfo) VALUES
( @UserGuid, @CharacterName, @ItemCode, @OptionType, @EffectType1, @EffectType2, @TotalUsePeriod, GETDATE(), @ExpireDate, 1 )
IF( @@Error <> 0 )
BEGIN
SET @ErrorCode = 2
END

IF ( @ErrorCode  <> 0 )
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION

SELECT @ErrorCode

SET NOCOUNT OFF
SET XACT_ABORT OFF
END
[свернуть]


ето ето с процедуры WZ_PeriodItemselect
Спойлер
USE [muonline]
GO
/****** Object:  StoredProcedure [dbo].[WZ_PeriodItemSelect]    Script Date: 07/17/2011 13:36:34 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER Procedure [dbo].[WZ_PeriodItemSelect]

@UserGuid      int,
@CharacterName   varchar(10)
AS
BEGIN
DECLARE @ErrorCode int
DECLARE @ItemInfoCount int
DECLARE @PeriodIndex int
DECLARE @ExpireDate smalldatetime
DECLARE @UsedInfo tinyint

SET @PeriodIndex = 0
SET @ErrorCode = 0
SET @ItemInfoCount = 0
SET @UsedInfo = 0

SET NOCOUNT ON
DECLARE CUR CURSOR FOR SELECT [PeriodIndex], [ExpireDate], [UsedInfo]  FROM T_PeriodItem_Info WHERE UserGuid = @UserGuid AND CharacterName = @CharacterName AND UsedInfo = 1 FOR UPDATE
OPEN CUR
FETCH NEXT FROM CUR INTO @PeriodIndex, @ExpireDate, @UsedInfo
WHILE( @@fetch_status <> -1 )
BEGIN
IF( @@fetch_status <> -2 )
BEGIN
IF( @ExpireDate < GetDate() )
BEGIN
UPDATE T_PeriodItem_Info SET UsedInfo = 0 WHERE PeriodIndex = @PeriodIndex
END
END
FETCH NEXT FROM CUR INTO @PeriodIndex, @ExpireDate, @UsedInfo
END

SELECT *, DATEDIFF( minute, BuyDate, GETDATE() ) AS UsedMinutes, DATEDIFF( minute, GETDATE(), ExpireDate ) AS LeftMinutes FROM T_PeriodItem_Info where UserGuid = @UserGuid AND CharacterName = @CharacterName AND UsedInfo = 1
IF( @@Error <> 0 )
BEGIN
SET @ErrorCode = -1
END

CLOSE CUR
DEALLOCATE CUR

SET NOCOUNT OFF
END
[свернуть]

Похожие темы (5)

Сообщений: 19
Просмотров: 7244

Сообщений: 3
Просмотров: 3069

Сообщений: 3
Просмотров: 3076