achei como criar elas mais ainda esta com erro
so que agora presisaria saber da colação qual ea que esta sendo usada
[Only registered and activated users can see links. Click Here To Register...] 05-12-2013, 02:56 PMRenatoWZ_CONNECT_MEMB:
WZ_DISCONNECT_MEMB:Código:IF EXISTS(SELECT * FROM sys.objects WHERE type = 'P' AND name = 'WZ_CONNECT_MEMB')
DROP PROCEDURE [dbo].[WZ_CONNECT_MEMB]
GO
CREATE PROCEDURE WZ_CONNECT_MEMB
@uid VARCHAR(20),
@server VARCHAR(20),
@uip VARCHAR(20)
AS BEGIN
BEGIN TRANSACTION
SET NOCOUNT ON
IF EXISTS (SELECT memb___id FROM MEMB_STAT WITH (READUNCOMMITTED) WHERE memb___id = @uid )
BEGIN
UPDATE MEMB_STAT SET ip = @uip , connectstat = 1 , servername = @server , ConnectTM = (getdate()) WHERE memb___id = @uid;
--=================================================--
-- ATUALIZANDO HORÁRIO DE LOGIN NA MEMB_STAT --
--=================================================--
UPDATE MEMB_STAT SET ConnectStartTime = DATEDIFF(s, '19700101', GETDATE()) WHERE memb___id = @uid;
END
ELSE
BEGIN
INSERT INTO MEMB_STAT ( memb___id,ip,connectstat,servername) VALUES (@uid,@uip,1,@server);
--======================================================================--
-- ATUALIZANDO HORÁRIO DE LOGIN NA MEMB_STAT APÓS INSERT DE DADOS --
--======================================================================--
UPDATE MEMB_STAT SET ConnectStartTime = DATEDIFF(s, '19700101', GETDATE()) WHERE memb___id = @uid;
END
IF(@@Error <> 0 )
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
SET NOCOUNT OFF
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS OFF
GO
Aguardo feedback.Código:IF EXISTS(SELECT * FROM sys.objects WHERE type = 'P' AND name = 'WZ_DISCONNECT_MEMB')
DROP PROCEDURE [DBO].[WZ_DISCONNECT_MEMB]
GO
CREATE PROCEDURE WZ_DISCONNECT_MEMB
@uid VARCHAR(20)
AS BEGIN
BEGIN TRANSACTION
SET NOCOUNT ON
DECLARE @LOGINTIME INT;
DECLARE @LOGOUTTIME INT;
DECLARE @TIMEON INT;
IF EXISTS ( SELECT memb___id FROM MEMB_STAT WITH (READUNCOMMITTED) WHERE memb___id = @uid )
BEGIN
UPDATE MEMB_STAT SET DisConnectTM = (getdate()), connectstat = 0 WHERE memb___id = @uid;
--======================================================--
-- ATUALIZANDO HORÁRIO DE LOGGOUT NA MEMB_STAT --
--======================================================--
UPDATE MEMB_STAT SET ConnectEndTime = DATEDIFF(s, '19700101', GETDATE()) WHERE memb___id = @uid;
--==============================================================--
-- SELECIONANDO HORÁRIO DE LOGIN E DE LOGGOUT NA MEMB_STAT --
--==============================================================--
SET @LOGINTIME = (SELECT DATEDIFF(s, GETDATE(), DATEADD(s, CAST(MEMB_STAT.ConnectStartTime as int), '19700101')) FROM MEMB_STAT WHERE memb___id = @uid);
SET @LOGOUTTIME = (SELECT DATEDIFF(s, GETDATE(), DATEADD(s, CAST(MEMB_STAT.ConnectEndTime as int), '19700101')) FROM MEMB_STAT WHERE memb___id = @uid);
--==============================--
-- EXECUTANDO OPERAÇÃO --
--==============================--
SET @TIMEON = @LOGOUTTIME - @LOGINTIME;
--==============================================--
-- ATUALIZANDO TEMPO ONLINE NA MEMB_STAT --
--==============================================--
UPDATE MEMB_STAT SET TimeON = TimeON + @TIMEON WHERE memb___id = @uid;
END
ELSE
BEGIN
INSERT INTO MEMB_STAT ( memb___id, DisConnectTM, connectstat) VALUES (@uid,(getdate()),0);
END
IF(@@Error <> 0 )
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
SET NOCOUNT OFF
End
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
[]'s 05-12-2013, 03:47 PMOgocX@Renatiinn
A minha WZ_CONNECT_MEMB e WZ_DISCONNECT_MEMB São iguais a do @hadeslan, más deu erro em ambas erros abaixo:
WZ_CONNECT_MEMB
WZ_DISCONNECT_MEMB
São esses os erros que estão dando ao rodar-las 05-12-2013, 03:52 PMRenato@andrews desculpe, a anta que vos fala esqueceu de declarar as variáveis. Já editei o código das procedures que postei acima. Tente novamente e informe o resultado. 05-12-2013, 04:20 PMOgocX@Renatiinn agora funcionou perfeitamente, você não e anta cara errar e humano :)
Desculpa a minha burrice e que eu não entendo muito bem de timestamp
Como seria uma premiação para a cada 6 Horas online?
Table: WebCash, Coluna: amount, Onde fica os logins: username 05-12-2013, 04:24 PMRenato@andrews, quando eu tinha meu servidor e utilizava essas procedures eu fazia a premiação através de um sistema web que eu programei.
Era um sistema de trocas online através do qual o player ia acumulando horas e as trocava por gold/cash/points ou VIP. Fiz ele compatível com o MUSite e com a EffectWeb. Vou ver se o encontro quando chegar em casa e libero pra vocês.
Caso não o encontre (acho que já o deletei), eu faço um modulo para o musite com essas funções de troca e posto aqui como complemento do tópico. :ohrly: 05-12-2013, 04:29 PMOgocX@Renatiinn, sim eu lembro era um ótimo sistema era possível até trocar Resets e Mrs eu lembro pois quando você posto eu usei mas infelizmente mudei de servidor e perdi meu pen drive para me ajudar acabei perdendo as files, se você fizer o modulo não so eu mais todo mundo iria agradecer com certeza! 05-12-2013, 04:37 PMRenatoEncontrei os arquivos no meu pendrive. Que fique claro que este não é o mesmo que você usou. Este eu fiz exclusivamente pro meu antigo servidor (é mais leve e tem sistema de templates).
Os scripts são antigos (faz tempo pra caralho que eu fiz, não programo mais assim), portanto pode haver falhas (nunca tive problemas com ele).
Download: [Only registered and activated users can see links. Click Here To Register...]
Mais informações sobre o sistema você encontra no post inicial deste tópico. 05-12-2013, 04:59 PMOgocX@Renatiinn obrigado cara, irei ver o sistema nessa parte ai eu entendo muito bem eu apenas sou péssimo em SQL, irei personalizar o meu e posto ae pra galera também caso eles queiram... Obrigado mesmo cara!
Mensagem de moderação:
Fique atento às normas do fórum.
Tópicos e Mensagens
É proibida a criação de mensagens/posts fazendo elogios ou agradecimento por uma informação dada ou um arquivo postado. Para isso, use o botão AGRADECER. [MÉDIA]
05-12-2013, 06:52 PMhadeslandesisto nun deu não usar o velho sistema do little de trocas online que tenho aqui e usar meu metodo antigo que e de contagem em minutos
