mehregan
یک شنبه 14 بهمن 1386, 13:40 عصر
سلام
در یک سیستم فروش کالا، برای ثبت فاکتور از sp زیر استفاده میکنیم.
به یک مشکل عجیب برخوردم و آن اینکه چند فاکتور با شماره تکراری ثبت شده است.
فاکتورها پشت سرهم و از روی 2 سیستم مختلف ثبت شده است.
اشکال از چی میتونه باشه؟
ممنون
CREATE PROCEDURE [dbo].[factorInsert]
@ID int OUTPUT,
@FacSno int OUTPUT,
@FacDate int = 0,
@FacDiscount decimal = NULL,
@FacAmountTotal decimal = 0,
@FacIsRevoke bit = 0,
@userId int = NULL,
@DayWeek int
AS
DECLARE @Err AS Int
BEGIN TRANSACTION
SELECT @FacSno = ISNULL(MAX(FacSno),0) + 1 FROM acc_factor WHERE FacIsRevoke = @FacIsRevoke
INSERT INTO [dbo].[acc_factor] (
[FacSno],
[FacDate],
[FacDiscount],
[FacAmountTotal],
[FacIsRevoke],
[userId],
[DayWeek]
)
VALUES(
@FacSno,
@FacDate,
@FacDiscount,
@FacAmountTotal,
@FacIsRevoke,
@userId,
@DayWeek
)
SET @Err = @@ERROR
IF @Err = 0
BEGIN
COMMIT TRANSACTION
SET @ID = @@IDENTITY
END
ELSE
BEGIN
ROLLBACK TRANSACTION
IF @Err=50000
BEGIN
RAISERROR('امکان درج رکورد وجود ندارد',16,1)
END
ELSE
BEGIN
RETURN @Err
END
END
GO
در یک سیستم فروش کالا، برای ثبت فاکتور از sp زیر استفاده میکنیم.
به یک مشکل عجیب برخوردم و آن اینکه چند فاکتور با شماره تکراری ثبت شده است.
فاکتورها پشت سرهم و از روی 2 سیستم مختلف ثبت شده است.
اشکال از چی میتونه باشه؟
ممنون
CREATE PROCEDURE [dbo].[factorInsert]
@ID int OUTPUT,
@FacSno int OUTPUT,
@FacDate int = 0,
@FacDiscount decimal = NULL,
@FacAmountTotal decimal = 0,
@FacIsRevoke bit = 0,
@userId int = NULL,
@DayWeek int
AS
DECLARE @Err AS Int
BEGIN TRANSACTION
SELECT @FacSno = ISNULL(MAX(FacSno),0) + 1 FROM acc_factor WHERE FacIsRevoke = @FacIsRevoke
INSERT INTO [dbo].[acc_factor] (
[FacSno],
[FacDate],
[FacDiscount],
[FacAmountTotal],
[FacIsRevoke],
[userId],
[DayWeek]
)
VALUES(
@FacSno,
@FacDate,
@FacDiscount,
@FacAmountTotal,
@FacIsRevoke,
@userId,
@DayWeek
)
SET @Err = @@ERROR
IF @Err = 0
BEGIN
COMMIT TRANSACTION
SET @ID = @@IDENTITY
END
ELSE
BEGIN
ROLLBACK TRANSACTION
IF @Err=50000
BEGIN
RAISERROR('امکان درج رکورد وجود ندارد',16,1)
END
ELSE
BEGIN
RETURN @Err
END
END
GO