Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeGetting StartedGetting StartedInstalling DNN ...Installing DNN ...New 4.5.1 SQL Script bugNew 4.5.1 SQL Script bug
Previous
 
Next
New Post
4/18/2007 3:10 PM
 

I'm getting an error with the 04.05.01.SqlDataProvider script.  It looks like it isn't prefixing the folders table with the object qualifyer value.

04.05.01.log file

System.Data.SqlClient.SqlException: Invalid object name 'Folders'.

at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)

at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)

at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)

at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)

at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)

at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)

at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()

at DotNetNuke.Data.SqlDataProvider.ExecuteADOScript(String SQL)

at DotNetNuke.Data.SqlDataProvider.ExecuteScript(String Script, Boolean UseTransactions)

 

/* correct any File folderpaths which do not match the value in the Folders table */

update LcmDnn_Files

set Folder = FolderPath

from Folders

where Files.FolderID = Folders.FolderID

and Folder <> FolderPath

 
New Post
4/18/2007 3:21 PM
 

try this sql script (you can run it from host :: sql menu item):

/************************************************************/
/*****              SqlDataProvider                     *****/
/*****                                                  *****/
/*****                                                  *****/
/***** Note: To manually execute this script you must   *****/
/*****       perform a search and replace operation     *****/
/*****       for {databaseOwner} and {objectQualifier}  *****/
/*****                                                  *****/
/************************************************************/

/* add unique constraint to Folders table */
IF NOT EXISTS (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}[IX_{objectQualifier}FolderPath]') and OBJECTPROPERTY(id, N'IsConstraint') = 1)
BEGIN
  declare @PortalID int
  declare @FolderPath varchar(300)
  declare @FolderID int
  declare @MinFolderID int
  select @PortalID = min(PortalID)
  from {databaseOwner}{objectQualifier}Portals
  while @PortalID is not null
  begin 
    /* check for duplicate FolderPaths */
    select @FolderPath = null
    select @FolderPath = FolderPath
    from {databaseOwner}{objectQualifier}Folders
    where PortalID = @PortalID
    group by FolderPath
    having COUNT(*) > 1
 
    /* if duplicates exist */
    if @FolderPath is not null
    begin
      /* iterate through the duplicates */
      select @FolderID = min(FolderID)
      from {databaseOwner}{objectQualifier}Folders
      where PortalID = @PortalID
      and FolderPath = @FolderPath
      /* save min FolderID */
      select @MinFolderID = @FolderID
      while @FolderID is not null
      begin
        if @FolderID <> @MinFolderID
        begin
          /* reassign FolderId to min FolderID for duplicate folders */
          update {databaseOwner}{objectQualifier}Files
          set FolderID = @MinFolderID
          where FolderID = @FolderID
          /* remove duplicate folder */
          delete
          from {databaseOwner}{objectQualifier}Folders
          where FolderID = @FolderID
        end
        select @FolderID = min(FolderID)
        from {databaseOwner}{objectQualifier}Folders
        where PortalID = @PortalID
        and FolderPath = @FolderPath
        and FolderID > @FolderID
      end
    end
 
    select @PortalID = min(PortalID)
    from {databaseOwner}{objectQualifier}Portals
    where PortalID > @PortalID
  end
  /* add unique constraint */
  ALTER TABLE {databaseOwner}{objectQualifier}Folders ADD CONSTRAINT
    IX_{objectQualifier}FolderPath UNIQUE NONCLUSTERED
    (
      PortalID,
      FolderPath
    ) ON [PRIMARY]
END
GO
/* correct any File folderpaths which do not match the value in the Folders table */
update {databaseOwner}{objectQualifier}Files
set    Folder = FolderPath
from   {databaseOwner}{objectQualifier}Folders
where  Files.FolderID = Folders.FolderID
and    Folder <> FolderPath 
GO
/* add unique constraint to Files table */
IF NOT EXISTS (select * from dbo.sysobjects where id = object_id(N'{databaseOwner}[IX_{objectQualifier}FileName]') and OBJECTPROPERTY(id, N'IsConstraint') = 1)
BEGIN
  declare @FolderID int
  declare @FileName nvarchar(100)
  declare @FileID int
  declare @MinFileID int
  select @FolderID = min(FolderID)
  from {databaseOwner}{objectQualifier}Folders
  while @FolderID is not null
  begin 
    /* check for duplicate Filenames */
    select @FileName = null
    select @FileName = FileName
    from {databaseOwner}{objectQualifier}Files
    where FolderID = @FolderID
    group by FileName
    having COUNT(*) > 1
 
    /* if duplicates exist */
    if @FileName is not null
    begin
      /* iterate through the duplicates */
      select @FileID = min(FileID)
      from {databaseOwner}{objectQualifier}Files
      where FolderID = @FolderID
      and FileName = @FileName
      /* save min FileID */
      select @MinFileID = @FileID
      while @FileID is not null
      begin
        if @FileID <> @MinFileID
        begin
          /* remove duplicate file */
          delete
          from {databaseOwner}{objectQualifier}Files
          where FileID = @FileID
        end
        select @FileID = min(FileID)
        from {databaseOwner}{objectQualifier}Files
        where FolderID = @FolderID
        and FileName = @FileName
        and FileID > @FileID
      end
    end
    select @FolderID = min(FolderID)
    from {databaseOwner}{objectQualifier}Folders
    where FolderID > @FolderID
  end
  
  ALTER TABLE {databaseOwner}{objectQualifier}Files ADD CONSTRAINT
    IX_{objectQualifier}FileName UNIQUE NONCLUSTERED
    (
      FolderID,
      FileName
    ) ON [PRIMARY]
END
GO
/************************************************************/
/*****              SqlDataProvider                     *****/
/************************************************************/

Cheers from Germany,
Sebastian Leupold

dnnWerk - The DotNetNuke Experts   German Spoken DotNetNuke User Group

Speed up your DNN Websites with TurboDNN
 
New Post
4/18/2007 3:43 PM
 

Thanks leupold,

I added the object qulifier to the script myself, restored my database and then set autoupdate to true and all is well.

Thanks for your response though.

 
New Post
4/18/2007 8:47 PM
 

Yes, thanks for the response.  It pointed me in the right direction.  Though the script should read like this (to include the owner/objqualifier on all objects) (and of course you have to replace with your dbo and object qualifier):

IF NOT EXISTS (select * from {databaseOwner}sysobjects where id = object_id(N'{databaseOwner}[IX_{objectQualifier}FolderPath]') and OBJECTPROPERTY(id, N'IsConstraint') = 1)
BEGIN
  declare @PortalID int
  declare @FolderPath varchar(300)
  declare @FolderID int
  declare @MinFolderID int

  select @PortalID = min(PortalID)
  from {databaseOwner}{objectQualifier}Portals
  while @PortalID is not null
  begin 
    /* check for duplicate FolderPaths */
    select @FolderPath = null
    select @FolderPath = FolderPath
    from {databaseOwner}{objectQualifier}Folders
    where PortalID = @PortalID
    group by FolderPath
    having COUNT(*) > 1
 
    /* if duplicates exist */
    if @FolderPath is not null
    begin
      /* iterate through the duplicates */
      select @FolderID = min(FolderID)
      from {databaseOwner}{objectQualifier}Folders
      where PortalID = @PortalID
      and FolderPath = @FolderPath

      /* save min FolderID */
      select @MinFolderID = @FolderID

      while @FolderID is not null
      begin
        if @FolderID <> @MinFolderID
        begin
          /* reassign FolderId to min FolderID for duplicate folders */
          update {databaseOwner}{objectQualifier}Files
          set FolderID = @MinFolderID
          where FolderID = @FolderID

          /* remove duplicate folder */
          delete
          from {databaseOwner}{objectQualifier}Folders
          where FolderID = @FolderID
        end

        select @FolderID = min(FolderID)
        from {databaseOwner}{objectQualifier}Folders
        where PortalID = @PortalID
        and FolderPath = @FolderPath
        and FolderID > @FolderID
      end
    end
 
    select @PortalID = min(PortalID)
    from {databaseOwner}{objectQualifier}Portals
    where PortalID > @PortalID
  end

  /* add unique constraint */
  ALTER TABLE {databaseOwner}{objectQualifier}Folders ADD CONSTRAINT
    IX_{objectQualifier}FolderPath UNIQUE NONCLUSTERED
    (
      PortalID,
      FolderPath
    ) ON [PRIMARY]
END
GO

/* correct any File folderpaths which do not match the value in the Folders table */
update {databaseOwner}{objectQualifier}Files
set    Folder = FolderPath
from   {databaseOwner}{objectQualifier}Folders
where  {databaseOwner}{objectQualifier}Files.FolderID = {databaseOwner}{objectQualifier}Folders.FolderID
and    Folder <> FolderPath 
GO

/* add unique constraint to Files table */
IF NOT EXISTS (select * from {databaseOwner}sysobjects where id = object_id(N'{databaseOwner}[IX_{objectQualifier}FileName]') and OBJECTPROPERTY(id, N'IsConstraint') = 1)
BEGIN
  declare @FolderID int
  declare @FileName nvarchar(100)
  declare @FileID int
  declare @MinFileID int

  select @FolderID = min(FolderID)
  from {databaseOwner}{objectQualifier}Folders
  while @FolderID is not null
  begin 
    /* check for duplicate Filenames */
    select @FileName = null
    select @FileName = FileName
    from {databaseOwner}{objectQualifier}Files
    where FolderID = @FolderID
    group by FileName
    having COUNT(*) > 1
 
    /* if duplicates exist */
    if @FileName is not null
    begin
      /* iterate through the duplicates */
      select @FileID = min(FileID)
      from {databaseOwner}{objectQualifier}Files
      where FolderID = @FolderID
      and FileName = @FileName

      /* save min FileID */
      select @MinFileID = @FileID

      while @FileID is not null
      begin
        if @FileID <> @MinFileID
        begin
          /* remove duplicate file */
          delete
          from {databaseOwner}{objectQualifier}Files
          where FileID = @FileID
        end

        select @FileID = min(FileID)
        from {databaseOwner}{objectQualifier}Files
        where FolderID = @FolderID
        and FileName = @FileName
        and FileID > @FileID
      end
    end

    select @FolderID = min(FolderID)
    from {databaseOwner}{objectQualifier}Folders
    where FolderID > @FolderID
  end
 
  ALTER TABLE {databaseOwner}{objectQualifier}Files ADD CONSTRAINT
    IX_{objectQualifier}FileName UNIQUE NONCLUSTERED
    (
      FolderID,
      FileName
    ) ON [PRIMARY]
END
GO


/Brian C
 
Previous
 
Next
HomeHomeGetting StartedGetting StartedInstalling DNN ...Installing DNN ...New 4.5.1 SQL Script bugNew 4.5.1 SQL Script bug


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out