error on bulk edit

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
13 年 前
If you wanna bitch use the PM...Please!!
13 年 前
garethjnic wrote:
If you wanna bitch use the PM...Please!!


I was not bitching, I was responding to your less than complimentary and unnecessary  pm.

I won't take part in a slagging match  so, thank you for your kind offer, but I regret I must respectfully decline.
13 年 前
lhenschel wrote:
OK, I fixed it on my system.  I had Nop_Product rows without corresponding Nop_ProductVariant.  So I deleted the Nop_Product rows that didn't exist in Nop_ProductVariant.  I did try it in a test database before my pre-production database. :)

It was kludgy, but it worked....




Thank you for the soild feedback, I still can't get that approch to work on my DB.
13 年 前
I really just went thru the stored procedure until I found something that returned a null and then took a closer look at the tables.
13 年 前
try to update this Sp: (this should solve the problem)

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go



ALTER PROCEDURE [dbo].[Nop_ProductVariantLoadAll]
(
  @CategoryID      int = 0,
  @ManufacturerID    int = 0,
  @Keywords      nvarchar(MAX),
  @ShowHidden      bit = 0,
  @PageIndex      int = 0,
  @PageSize      int = 2147483644,
  @TotalRecords    int = null OUTPUT
)
AS
BEGIN
  
  --init
  SET @Keywords = isnull(@Keywords, '')
  SET @Keywords = '%' + rtrim(ltrim(@Keywords)) + '%'

  --display order
  CREATE TABLE #DisplayOrder
  (
    ProductID int not null PRIMARY KEY,
    DisplayOrder int not null
  )  

  IF @CategoryID IS NOT NULL AND @CategoryID > 0
    BEGIN
      INSERT #DisplayOrder
      SELECT pcm.ProductID, pcm.DisplayOrder
      FROM [Nop_Product_Category_Mapping] pcm WHERE pcm.CategoryID = @CategoryID
    END
    ELSE IF @ManufacturerID IS NOT NULL AND @ManufacturerID > 0
    BEGIN
      INSERT #DisplayOrder
      SELECT pmm.ProductID, pmm.Displayorder
      FROM [Nop_Product_Manufacturer_Mapping] pmm WHERE pmm.ManufacturerID = @ManufacturerID
    END
  ELSE
    BEGIN
      INSERT #DisplayOrder
      SELECT p.ProductID, 1
      FROM [Nop_Product] p
      ORDER BY p.[Name]
    END
  
  --paging
  DECLARE @PageLowerBound int
  DECLARE @PageUpperBound int
  DECLARE @RowsToReturn int
  
  SET @RowsToReturn = @PageSize * (@PageIndex + 1)  
  SET @PageLowerBound = @PageSize * @PageIndex
  SET @PageUpperBound = @PageLowerBound + @PageSize + 1
  
  CREATE TABLE #PageIndex
  (
    IndexID int IDENTITY (1, 1) NOT NULL,
    ProductVariantID int NOT NULL,
    DisplayOrder int NOT NULL,
  )
  INSERT INTO #PageIndex (ProductVariantID, DisplayOrder)
  SELECT DISTINCT isnull(pv.ProductVariantID,0) ProductVariantID -- pv.ProductVariantID
                     , do.DisplayOrder
  FROM Nop_Product p with (NOLOCK)
  LEFT OUTER JOIN Nop_Product_Category_Mapping pcm with (NOLOCK) ON p.ProductID=pcm.ProductID
  LEFT OUTER JOIN Nop_Product_Manufacturer_Mapping pmm with (NOLOCK) ON p.ProductID=pmm.ProductID
  LEFT OUTER JOIN Nop_ProductVariant pv with (NOLOCK) ON p.ProductID = pv.ProductID
  JOIN #DisplayOrder do on p.ProductID = do.ProductID
  WHERE
    (
      (
        @ShowHidden = 1 OR p.Published = 1
      )
    AND
      (
        @ShowHidden = 1 OR pv.Published = 1
      )
    AND
      (
        p.Deleted=0
      )
    AND (
        @CategoryID IS NULL OR @CategoryID=0
        OR pcm.CategoryID=@CategoryID
      )
    AND (
        @ManufacturerID IS NULL OR @ManufacturerID=0
        OR pmm.ManufacturerID=@ManufacturerID
      )
    AND  (
        -- search standard content
        patindex(@Keywords, isnull(p.name, '')) > 0
        or patindex(@Keywords, isnull(pv.name, '')) > 0
        or patindex(@Keywords, isnull(pv.sku , '')) > 0
      )
    AND
      (
        @ShowHidden = 1
        OR
        (getutcdate() between isnull(pv.AvailableStartDateTime, '1/1/1900') and isnull(pv.AvailableEndDateTime, '1/1/2999'))
      )
    )
  ORDER BY do.DisplayOrder

  --total records
  SET @TotalRecords = @@rowcount  
  SET ROWCOUNT @RowsToReturn
  
  --return
  SELECT  
    pv.*
  FROM
    #PageIndex [pi]
    INNER JOIN Nop_ProductVariant pv on pv.ProductVariantID = [pi].ProductVariantID
  WHERE
    [pi].IndexID > @PageLowerBound AND
    [pi].IndexID < @PageUpperBound
    AND [pi].ProductVariantID <> 0
  ORDER BY
    IndexID
  
  SET ROWCOUNT 0

  DROP TABLE #DisplayOrder
  DROP TABLE #PageIndex
END
This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.