bak şöyle bir şey var.
Dün bir arkadaşında aynı problem var dı çözemedik. sql 2000 den kaynaklanıyor muhtemelen. Şu kodları dene olmassa sql 2000 dendir.
İlk olarak SOACS_LOGIN
Kod:
CREATE PROCEDURE SOACS_LOGIN
@AccountID varchar(21),
@Password varchar(13),
@IpAddress varchar(50),
@HwID varchar(50),
@nRet smallint OUTPUT
AS
if(exists(select * from HardwareBanList where ltrim(rtrim(HWID)) = ltrim(rtrim(@HwID))))
begin
-- Blocked HardwareID
SET @nRet = 4
RETURN
end
-- Oto Üyelik
select @nRet = count(straccountid) from tb_user where straccountid = @AccountID
if @nRet = 0
BEGIN
INSERT INTO TB_USER (strAccountID, strPasswd, strSocNo, iDays) VALUES (@AccountID, @Password, 1, '6')
END
DECLARE @Nation tinyint, @CharNum smallint
SET @Nation = 0
SET @CharNum = 0
DECLARE @pwd varchar(13)
SET @pwd = null
SELECT @pwd = strPasswd FROM [dbo].[TB_USER] WHERE strAccountID = @AccountID
IF @pwd IS null
BEGIN
SET @nRet = 0
RETURN
END
ELSE IF @pwd <> @Password
BEGIN
SET @nRet = 0
RETURN
END
--CurrentUserdan Silelim
delete from currentuser where straccountid = @AccountID
--Currentuser bitis
---Login bilgilerini kaydet
Insert Into HardwareLog values (@AccountID,@IpAddress,ltrim(rtrim(@HwID)),getdate())
--Login bilgileri bitis
SELECT @Nation = bNation, @CharNum = bCharNum FROM ACCOUNT_CHAR WHERE strAccountID = @AccountID
IF @@ROWCOUNT = 0
BEGIN
SET @nRet = 1
RETURN
END
IF @CharNum >= 0
BEGIN
SET @nRet = 1
RETURN
END
ELSE
BEGIN
SET @nRet = @Nation+1
RETURN
END
GO
HardwareBanList
Kod:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[HardwareBanList]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[HardwareBanList]
GO
CREATE TABLE [dbo].[HardwareBanList] (
[strAccountID] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[HWID] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Time] [datetime] NULL
) ON [PRIMARY]
GO
HardwareLog
Kod:
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[HardwareLog]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[HardwareLog]
GO
CREATE TABLE [dbo].[HardwareLog] (
[AccountID] [char] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[IP] [char] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[HWID] [char] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[LoginTime] [datetime] NULL
) ON [PRIMARY]
GO
Son olarakta HWBAN
Kod:
USE [kn_online]
GO
/****** Object: StoredProcedure [dbo].[HWBAN] Script Date: 10/16/2013 15:36:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
create PROCEDURE [dbo].[HWBAN]
-- Add the parameters for the stored procedure here
@AccountID varchar(21),
@HwID varchar(50)
AS
BEGIN
SET NOCOUNT ON;
-- Insert statements for procedure here
Insert Into HardwareBanList values (@AccountID,@HwID,GETDATE())
PRINT @AccountID + ' hesabina ait ' + @HwID + ' seri no banlandi'
END