Hey can anyone convert this sql script
Code:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[GensServerInfo]
@imapSvrGroup SMALLINT,
@iUpdateDays INT,
@iPrizeDays INT
AS
BEGIN
BEGIN TRANSACTION
SET NOCOUNT ON
DECLARE @lastUPDATE_DAY int
IF NOT EXISTS( SELECT UPDATE_TIME FROM GensMainInfo WHERE MAP_SVR_GROUP = @imapSvrGroup )
BEGIN
INSERT INTO GensMainInfo (MAP_SVR_GROUP,UPDATE_TIME) VALUES @imapSvrGroup,GETDATE())
END
SELECT @lastUPDATE_DAY=DATEDIFF(day,UPDATE_TIME,GETDATE()) FROM GensMainInfo
IF @lastUPDATE_DAY > @iPrizeDays
BEGIN
UPDATE GensUserInfo SET memb_rank = (SELECT COUNT(*) FROM GensUserInfo a1, GensUserInfo a2 WHERE a1.memb_contribution <= a2.memb_contribution AND a1.memb_char = GensUserInfo.memb_char AND a1.memb_clan = a2.memb_clan GROUP BY a1.memb_contribution )
END
IF @lastUPDATE_DAY >= @iUpdateDays
BEGIN
UPDATE GensMainInfo SET UPDATE_TIME = GETDATE() WHERE MAP_SVR_GROUP = @imapSvrGroup
UPDATE GensUserInfo SET memb_reward = 0
SET @lastUPDATE_DAY = 0
END
SELECT @lastUPDATE_DAY AS DaysFromUpdate
IF(@@Error <> 0 )
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
END
GO
/****** Object: StoredProcedure [dbo].[GensDelUser] Script Date: 08/13/2014 10:59:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[GensDelUser]
@szCharacter VARCHAR(10),
@igens INT
AS
BEGIN
BEGIN TRANSACTION
SET NOCOUNT ON;
DECLARE @curGens INT;
DECLARE @Result INT;
SET @curGens = 0;
SET @Result = 0;
SELECT @curGens=memb_clan FROM GensUserInfo WHERE memb_char = @szCharacter
IF @curGens <> @igens
BEGIN
SET @Result = 3;
GOTO ProcEnd
END
ELSE
BEGIN
DELETE FROM GensUserInfo WHERE memb_char = @szCharacter
SET @Result = @@Error;
END
ProcEnd:
IF @Result <> 0 )
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
SELECT @Result AS Result
END
GO
/****** Object: StoredProcedure [dbo].[GensAddUser] Script Date: 08/13/2014 10:59:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[GensAddUser]
@szCharacter VARCHAR(10),
@szguildMaster VARCHAR(10),
@igens TINYINT
AS
BEGIN
BEGIN TRANSACTION
SET NOCOUNT ON;
DECLARE @Result INT
DECLARE @guildGens INT
DECLARE @Rank INT
SET @Rank = 0;
SET @Result = 0;
SET @guildGens = @igens;
IF @szguildMaster <> '' )
BEGIN
IF NOT EXISTS(SELECT memb_char FROM GensUserInfo WHERE memb_char = @szguildMaster)
BEGIN
SET @Result = 5;
GOTO ProcEnd
END
ELSE
BEGIN
SELECT @guildGens=memb_clan FROM GensUserInfo WHERE memb_char = @szguildMaster
END
END
IF @guildGens <> @igens )
BEGIN
SET @Result = 4;
GOTO ProcEnd
END
IF EXISTS(SELECT memb_char FROM GensUserInfo WHERE memb_char = @szCharacter )
BEGIN
SET @Result = 1;
END
ELSE
BEGIN
SET @Rank = (SELECT COUNT(*) FROM GensUserInfo WHERE memb_clan = @igens)+1
INSERT INTO GensUserInfo (memb_char,memb_clan,memb_contribution,memb_rank,memb_reward) VALUES
(@szCharacter @igens,0 @Rank,0)
SET @Result = @@Error
END
ProcEnd:
IF @Result <> 0 )
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
SELECT
@Result AS Result,
@igens AS iGens,
0 AS iContrib,
@Rank AS iRank
END
to make it work on zGameServer cus i am trying to make sql 2000 database work and i get only that error in zMultiServer yet.
[03:23:32] exec GensServerInfo 0,30,7
[03:23:32] SQLSTATE:42S02, SQLSTRING:[Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name 'GensMainInfo'.
[03:23:32] SQLSTATE:25000, SQLSTRING:[Microsoft][ODBC SQL Server Driver][SQL Server]Transaction count after EXECUTE indicates that a COMMIT or ROLLBACK TRANSACTION statement is missing. Previous count = 256, current count = 257.
Thanks =]