[Mini-Fix] Mail STR Realtime Error

11/22/2012 21:48 - DK#1
Hallo Leute ,da ich in letzter Zeit paar Adds in Skype bekommen habe und immer nach diesem Fehler gefragt wurde ,hier mal der Simple Fix dafür ...

Ihr geht in euer SQL Server Managment Studio.
Dort logt ihr euch wie gewohnt ein.
Ihr öffnet Character.DBF in einer Neuen Abfrage =
[Only registered and activated users can see links. Click Here To Register...]


Anschließend kopiert ihr folgenden Text dort hinein:
PHP Code:
USE [CHARACTER_01_DBF]
GO
/****** Objet :  StoredProcedure [dbo].[MAIL_STR_REALTIME]    Date de génération du script : 10/28/2009 19:14:15 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc 
[dbo].[MAIL_STR_REALTIME]

        @
iGu            CHAR(255),
        @
serverindex    CHAR(2),
        @
nMail_Before   INT 0,
        @
nMail_After    INT 0,
        @
idPlayer       CHAR(7) = '0000000',
        @
nLevel         INT 0,
        @
iaccount       VARCHAR(32) = '',
        @
tmCreate       INT 0,
        @
dwSerialNumber INT 0,
        @
nHitPoint      INT 0
as
set nocount on

declare @iserverindex char(2)
set @iserverindex cast((cast(@serverindex as int) + 50) as char(2))

IF @
iGu 'S1'
        
BEGIN
                SELECT 
FROM MAIL_TBL 
                WHERE serverindex 
= @iserverindex AND byRead<90  
                ORDER BY nMail
        
RETURN
        
END
ELSE
IF @
iGu 'U1'
        
BEGIN
                UPDATE MAIL_TBL SET nMail 
= @nMail_Afterserverindex = @serverindexdwSerialNumber = @dwSerialNumbernHitPoint = @nHitPoint
                WHERE serverindex 
= @iserverindex and nMail = @nMail_Before
        
RETURN
        
END
ELSE
IF @
iGu  'I1'
        
BEGIN

                
DECLARE @ItemID int
                
DECLARE @ItemNum int
                
DECLARE @bBinds int
                SET 
@ItemID 0
                SET 
@ItemNum 1
                SET 
@bBinds 2
                

                
IF( @nLevel 20 BEGIN
                        SET 
@ItemID 26112
                END
                
ELSE IF( @nLevel 40 BEGIN
                        SET 
@ItemID 26211
                END
                
ELSE IF( @nLevel 60 BEGIN
                        SET 
@ItemID 26103
                END
                
ELSE IF( @nLevel 80 BEGIN
                        SET 
@ItemID 30135
                END
                
ELSE IF( @nLevel 100 BEGIN
                        SET 
@ItemID 5800
                        SET 
@bBinds 0
                END
                
ELSE IF( @nLevel 120 BEGIN
                        SET 
@ItemID 4703
                        SET 
@bBinds 0
                END
                
                
IF( @ItemID BEGIN
                        
RETURN
                
END

                
-- ?? ??? ?? ??
                DECLARE @
nMaxMailID int
                SELECT 
@nMaxMailID MAX(nMail)+1 from MAIL_TBL where serverindex = @iserverindex
                SET 
@nMaxMailID ISNULL( @nMaxMailID)

                -- ??? ??
                DECLARE @
szTitle                VARCHAR(128)
                DECLARE @
szText         VARCHAR(1024)
                
SET @szTitle 'Title'
                
SET @szText 'Text'

                
EXEC dbo.MAIL_STR 'A1', @nMaxMailID, @iserverindex, @idPlayer'0000000'0, @tmCreate0, @szTitle, @szText,@ItemID, @ItemNum0000, @bBinds
                
RETURN
        
END 
Anschließend ausführen und der Datenbank Server läuft ;9

Nur ein kleiner Simpler Fix ..
Nichts besonderes ..


MfG Armageddon
11/22/2012 21:58 xTwiLightx#2
Statt der Prozedur ihre Funktion zu nehmen, könntest du auch einfach das Dateformat ändern...

Code:
ALTER proc [dbo].[MAIL_STR_REALTIME]

        @iGu            CHAR(2),
        @serverindex    CHAR(2),
        @nMail_Before   INT = 0,
        @nMail_After    INT = 0,
        @idPlayer       CHAR(7) = '0000000',
        @nLevel         INT = 0,
        @iaccount       VARCHAR(32) = '',
        @tmCreate       INT = 0,
        @dwSerialNumber INT = 0,
        @nHitPoint      INT = 0
as
set nocount on

declare @sdate datetime
declare @edate datetime
declare @iserverindex char(2)

-- twilight edit START
set dateformat ymd
-- twilight edit END

set @sdate = '2007-07-18 00:00:00'--'2007-07-10 00:00:00'       -- '2007-07-18 00:00:00'
set @edate = '2007-08-31 23:59:00'--'2007-07-10 23:00:00'  -- '2007-08-31 23:59:00'
set @iserverindex = cast((cast(@serverindex as int) + 50) as char(2))

IF @iGu = 'S1'
        BEGIN
                SELECT * FROM MAIL_TBL 
                WHERE serverindex = @iserverindex AND byRead<90  
                ORDER BY nMail
        RETURN
        END
ELSE
IF @iGu = 'U1'
        BEGIN
                UPDATE MAIL_TBL SET nMail = @nMail_After, serverindex = @serverindex, dwSerialNumber = @dwSerialNumber, nHitPoint = @nHitPoint
                WHERE serverindex = @iserverindex and nMail = @nMail_Before
        RETURN
        END
ELSE
IF @iGu  = 'I1'
        BEGIN
                -- Ãßõ À̺¥Æ® ±â°£ÀÎÁö È®ÀÎ
                IF(getdate() < @sdate or getdate() > @edate) BEGIN
                        RETURN
                END
                -- ÃßõÀÎ ÀÎÁö È®ÀÎ            -- select top 10 * from ACCOUNT.ACCOUNT_DBF.dbo.tblEventRecommend
--                IF( NOT EXISTS(SELECT * FROM ACCOUNT.ACCOUNT_DBF.dbo.tblEventRecommend where  byaccount  = @iaccount ) )        BEGIN
--                        RETURN
--                END

                -- ¹ÞÀ»¼ö ÀÖ´Â ¾ÆÀÌÅÛÀÌ ÀÖ´ÂÁö È®ÀÎ
                DECLARE @ItemID int
                DECLARE @ItemNum int
                DECLARE @bBinds int
                SET @ItemID = 0
                SET @ItemNum = 1
                SET @bBinds = 2
                

                IF( @nLevel = 20 ) BEGIN
                        SET @ItemID = 26112
                END
                ELSE IF( @nLevel = 40 ) BEGIN
                        SET @ItemID = 26211
                END
                ELSE IF( @nLevel = 60 ) BEGIN
                        SET @ItemID = 26103
                END
                ELSE IF( @nLevel = 80 ) BEGIN
                        SET @ItemID = 30135
                END
                ELSE IF( @nLevel = 100 ) BEGIN
                        SET @ItemID = 5800
                        SET @bBinds = 0
                END
                ELSE IF( @nLevel = 120 ) BEGIN
                        SET @ItemID = 4703
                        SET @bBinds = 0
                END
                
                IF( @ItemID = 0 ) BEGIN
                        RETURN
                END

                -- ¸ÞÀÏ ¾ÆÀ̵ð ÇÒ´ç Çϱâ
                DECLARE @nMaxMailID int
                SELECT @nMaxMailID = MAX(nMail)+1 from MAIL_TBL where serverindex = @iserverindex
                SET @nMaxMailID = ISNULL( @nMaxMailID, 0 )

                -- ¾ÆÀÌÅÛ ÁÖ±â
                DECLARE @szTitle                VARCHAR(128)
                DECLARE @szText         VARCHAR(1024)
                SET @szTitle = '·¹º§ ¾÷À» ÃàÇÏ µå¸³´Ï´Ù!'
                SET @szText = 'ij¸¯ÅÍ ·¹º§ ¾÷ ±â³ä »óǰÀ» º¸³»µå¸³´Ï´Ù ^¤±^* ÇÁ¸®ÇÁ¿Í ÇÔ²² Áñ°Å¿î ÇÏ·ç º¸³»½Ã±â ¹Ù¶ø´Ï´Ù. °¨»çÇÕ´Ï´Ù.'

                EXEC dbo.MAIL_STR 'A1', @nMaxMailID, @iserverindex, @idPlayer, '0000000', 0, @tmCreate, 0, @szTitle, @szText,@ItemID, @ItemNum, 0, 0, 0, 0, @bBinds
                RETURN
        END
Wichtig ist dabei nur folgende Zeile:
Code:
-- twilight edit START
set dateformat ymd
-- twilight edit END
Damit wäre der Konflikt zwischen den Zeitformaten behoben..
11/22/2012 22:36 Sedrika#3
#moved
11/23/2012 04:48 xMootie#4
What's the error exactly? I've seen some mail warnings, but if I recall correctly, they didn't have anything to do with the "realtime" stored procedure.
11/23/2012 04:52 - DK#5
Quote:
Originally Posted by XorLethal View Post
What's the error exactly? I've seen some mail warnings, but if I recall correctly, they didn't have anything to do with the "realtime" stored procedure.
No Error :O ?
11/23/2012 05:56 Kris!#6
Man ändert eibfach die Sprache in Englisch, so hab ich es einmal gemacht (hatte alles in Deutsch)
11/23/2012 11:56 Sedrika#7
Quote:
Originally Posted by Kris! View Post
Man ändert eibfach die Sprache in Englisch, so hab ich es einmal gemacht (hatte alles in Deutsch)
Das ändern der Sprache wie du meinst, setzt nur die Ausgabe sprache der Fehler.
11/23/2012 13:50 xTwiLightx#8
Quote:
Originally Posted by XorLethal View Post
What's the error exactly? I've seen some mail warnings, but if I recall correctly, they didn't have anything to do with the "realtime" stored procedure.
People with German time-settings will get problems with the dateformat (englisch: ymd / german: dmy (I'm not sure)), so SQL can't convert a varchar like 20121112 to a datetime value, when the format doesn't fit to the current settings.
11/23/2012 23:59 xMootie#9
Quote:
Originally Posted by xTwiLightx View Post
People with German time-settings will get problems with the dateformat (englisch: ymd / german: dmy (I'm not sure)), so SQL can't convert a varchar like 20121112 to a datetime value, when the format doesn't fit to the current settings.
Ahh, makes sense. Thanks.
11/24/2012 02:39 KLR#10
error

2012/11/23 20:38:15
query:RANKING.RANKING_DBF.dbo.RANKING_STR 'R1','01'
SQLSTATE:42000 error:[Microsoft][SQL Native Client][SQL Server]Named Pipes Provider: Could not open a connection to SQL Server [2].
11/24/2012 10:58 xTwiLightx#11
Doens't fit here.
But here's a hint: You should connect to an existing server with your linked server. ;) [Datasource]
12/25/2012 12:59 - DK#12
Danke xTwilight ^^ Du kennst dich sicher sehr gut mit MSSQL aus oder :O ?
Wäre cool ,wenn du mir bei etwas helfen könntest ^^ Weil mein Ranking und Mein Ticketsystem funktioniert nicht richtig ,weil irgendwo eine falsche Abfrage ist ^^

Also wäre cool ,wenn du mal Zeit hättest und mri dabei helfen würdest Lg Armageddon
01/02/2013 05:08 lews169#13
You dont need to alter the stored procedures. Just change the SQL Server messages to English when configuring the data sources.

[Only registered and activated users can see links. Click Here To Register...]
01/02/2013 07:25 - DK#14
Quote:
Originally Posted by lews169 View Post
You dont need to alter the stored procedures. Just change the SQL Server messages to English when configuring the data sources.

[Only registered and activated users can see links. Click Here To Register...]
^^ This was not my Problem :D .. I post this fix for all People they have the Problem :D ^^
01/03/2013 00:00 PfirsichOne#15
Danke Schön

jetz funkt mein Datenbank server wieder richtig