PDA

View Full Version : مشکل در گذاشتن شرط



abasfar
سه شنبه 23 شهریور 1389, 16:07 عصر
سلام ببخشید کسی میتونه خط 14 من توری تغییر بده که بشه رد شدفقط نگین که درمورد کد توضیح بدم که واقعا من عاجزم

ALTER PROCEDURE [dbo].[RegisterErorr]
(
@Url nvarchar(500)
,@Row nvarchar(500)
,@Message nvarchar(500)
,@Source nvarchar(500)
,@StackTrace nvarchar(1000)
,@TargetSite nvarchar(500)
,@IPAdress char(15)
)
AS
If (@Message = any(select [Message] from [T_Error])) and (@Row = any(select [Row] from [T_Error]))
Begin
if(exists(convert(nvarchar , getdate(),111)= convert(nvarchar ,(select DateEvent from [T_Error]),111)) and exists(convert(nvarchar , getdate(),111)= convert(nvarchar , (select DateEvent from [T_Error]),111) and exists(convert(nvarchar ,(select DateEvent from [T_Error]),108) between convert(nvarchar , dateadd(hour,-1,getdate()),108) and convert(nvarchar , getdate(),108) ))
begin
update [T_Error]
Set [Count] = [Count] + 1
where (@Message =[Message]) and (@Row = Row)
end
else
begin
INSERT INTO T_Error
(Url, Row, [Message], Source, StackTrace, TargetSite, IPAdress, DateEvent,[count])
VALUES (@Url,@Row,@Message,@Source,@StackTrace,@TargetSit e,@IPAdress,getdate(),1)
end
End
Else
begin
INSERT INTO T_Error
(Url, Row, [Message], Source, StackTrace, TargetSite, IPAdress, DateEvent,[count])
VALUES (@Url,@Row,@Message,@Source,@StackTrace,@TargetSit e,@IPAdress,getdate(),1)
end

بهزادصادقی
سه شنبه 23 شهریور 1389, 16:14 عصر
حداقل می تونی ساختار جدول T_Error را درج کنی و بگی معمولا چند سطر در آن وجود دارد؟

abasfar
چهارشنبه 24 شهریور 1389, 09:45 صبح
ممنون از جواب شما

/****** Object: Table [dbo].[T_Error] Script Date: 09/15/2010 10:09:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[T_Error](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Url] [nvarchar](500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[Row] [nvarchar](500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[Message] [nvarchar](500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[Source] [nvarchar](500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[StackTrace] [nvarchar](1000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[TargetSite] [nvarchar](500) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[IPAdress] [char](15) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[DateEvent] [datetime] NULL,
[Count] [int] NULL,
CONSTRAINT [PK_T_Error] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF

واز تعداد سطرها به مرور زمان زیاد میشه
یعنی با رخداد هر error یکی اضافه میشه

abasfar
چهارشنبه 24 شهریور 1389, 09:53 صبح
من فکر میکنم این کد خط1و2 درست چون =any گذاشتم ولی توی خط سوم نمیدونم چی بزارم

if((convert(nvarchar , getdate(),111)=any convert(nvarchar ,(select DateEvent from [T_Error]),111))
and (convert(nvarchar , getdate(),111)=any convert(nvarchar , (select DateEvent from [T_Error]),111)
and (convert(nvarchar ,(select DateEvent from [T_Error]),108) between convert(nvarchar , dateadd(hour,-1,getdate()),108) and convert(nvarchar , getdate(),108) ))

بهزادصادقی
چهارشنبه 24 شهریور 1389, 19:38 عصر
من فکر میکنم این کد خط1و2 درست چون =any گذاشتم ولی توی خط سوم نمیدونم چی بزارم

if((convert(nvarchar , getdate(),111)=any convert(nvarchar ,(select DateEvent from [T_Error]),111))
and (convert(nvarchar , getdate(),111)=any convert(nvarchar , (select DateEvent from [T_Error]),111)
and (convert(nvarchar ,(select DateEvent from [T_Error]),108) between convert(nvarchar , dateadd(hour,-1,getdate()),108) and convert(nvarchar , getdate(),108) ))

دادش، می خواهی این کد چه کار کنه؟

می شه توضیح بدی می خواهی چه کار کنی؟