 |
|
|
|
Tom,
I got waylaid most of the week installing the Url Master on a site, which threw up some minor issues. This is a good thing as it allowed me to further eliminate some small bugs and problems and introduce some small new features. I've also done extensive testing and made sure it works with popular e-commerce sites like Catalook and ASPDOTNETSF.
I'm going to 'dogfood' this site with it today, finish the doco and release this weekend. I'll post back when that is done.
-Bruce |
|
|
|
 |  |
|
|
|
Well, as promised, I did get it dogfooded and released this weekend, although 10pm on Sunday night is pushing it somewhat!
The downloads are available:
iFinity Url Master Install
|
iFinity Url Master Install Instructions
I have also introduced a new feature with the licensing. As some people wish to try out the module on live sites when they don't have a testing site, I've created the option of a 10-day trial licence where the licensing message doesn't show. This gives you 10 days to make up your mind whether the module is working well or not.
To get a 10 day licence, just fill out the form on the Licensing Request Page
You can install the module at any time - the module does not affect the Url's until you click the 'apply changes' button the Friendly Url Settings screen. So you can wait to receive your licence file Chief Software Hacker |
|
|
|
 |  |
|
|
|
In your 3/17/08 blog, you state, " I'll probably give out discounts to Beta testers who decide they want to buy the final version."
Would you please advise those of us who tested your product about this discount??
I saw forum comments from 5-6 people at least.
I work for an American 501(c)(3) non-profit agency and it's not easy to get $$$ for software, particularly when it has to be explained to really non-technical people.
The current site (pre-DNN) is www.mountainlakeservices.org.
Your module would make it easier to keep URLs similar to the ones currently in use.
Thank you, Tom
|
|
|
|
 |  |
|
|
|
Hi Bruce, just tried the installer and got these SQL errors. It's SQL 2000 Standard Ed. (8.00.2039 SP4), US Language install, Collation: Latin1_General_CI_AS:
| StartJob |
Begin Sql execution |
| Info |
Executing 01.00.00.SqlDataProvider |
| StartJob |
Start Sql execution: 01.00.00.SqlDataProvider file |
| Failure |
SQL Execution resulted in following Exceptions: System.Data.SqlClient.SqlException: Invalid object name 'sys.objects'. 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) /************************************************************/ /***** SQLDataProvider *****/ /***** iFinity.Url Master 1.00.00 *****/ /***** *****/ /***** Note: To manually execute this script you must *****/ /***** perform a search and replace operation *****/ /***** for and *****/ /************************************************************/ /* create the table that contains all the actions to process when a new module control is added */ IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.[ifty_TabModuleCreation]') AND type in (N'U')) BEGIN /* this table is used to create a new tab and tab module for the specified module control file automatically upon module creation The values are for the input to the AddTab and AddTabModule procedures */ CREATE TABLE dbo.ifty_TabModuleCreation ( PortalId int null , ControlSource nvarchar(256) NOT NULL , TabName nvarchar(255) NOT NULL , IsVisible bit , DisableLink bit , ParentId int null , TabIconFile nvarchar(100) , Title nvarchar(200) NOT NULL , Description nvarchar(255) , KeyWords nvarchar(500) , SkinSrc nvarchar(200) , ContainerSrc nvarchar(200) , TabPath nvarchar(255) NOT NULL , StartDate datetime , EndDate datetime , RefreshInterval int , PageHeadText nvarchar(500) , IsSecure bit , TabOrder int NOT NULL , IsAdmin bit , PaneName nvarchar(50) , CacheTime int , Alignment nvarchar(10) , Color nvarchar(20) , Border nvarchar(1) , ModuleIconFile nvarchar(100) , Visibility int , DisplayTitle bit , DisplayPrint bit , DisplaySyndicate bit , SetDesktopModuleAdmin bit , DeleteTabOnModuleRemove bit , TabId int null , ModuleId int null , ModuleDefId int null , Completed bit ) END /* create a new tab, module and tab module for the UrlOptions.ascx control */ DEClARE @newControlSource nvarchar(255), @targetPortalId int SET @NewControlSource = 'DesktopModules/iFinity.UrlMaster/UrlOptions.ascx' SET @targetPortalId = NULL IF NOT EXISTS (Select * from ifty_TabModuleCreation WHERE (portalId = @targetPortalId or (@targetPortalId is null and PortalId is null)) and ControlSource = @newControlSource) BEGIN /* find the host settings tab id and path */ Declare @hostTabId int, @tabPath nvarchar(255), @tabOrder int SELECT @hostTabId = TabId , @tabPath = TabPath + '//FriendlyUrlSettings' FROM Tabs t WHERE (portalId = @targetPortalId or (@targetPortalId is null and PortalId is null)) AND parentId is null --this defines the host page, parent Id = null and portalId = null AND tabPath is not null SELECT @tabOrder = coalesce(max(tabOrder), 0) + 1 --taborder is the last tab in the host tabs FROM Tabs t WHERE (portalId = @targetPortalId or (@targetPortalId is null and PortalId is null)) /* now insert the values to be created */ INSERT INTO ifty_TabModuleCreation ( PortalId, ControlSource, TabName, IsVisible, DisableLink, ParentId, TabIconFile, Title, Description, KeyWords, SkinSrc, ContainerSrc, TabPath, StartDate, EndDate, RefreshInterval, PageHeadText, IsSecure, TabOrder, IsAdmin, PaneName, CacheTime, Alignment, Color, Border, ModuleIconFile, Visibility, DisplayTitle, DisplayPrint, DisplaySyndicate, SetDesktopModuleAdmin, DeleteTabOnModuleRemove, TabId, ModuleId, ModuleDefId, Completed) VALUES ( @targetPortalId, @newControlSource, 'Friendly Url Settings', 1, 0, @hostTabId, 'Friendly-Urls-Icon16.gif', 'Friendly Url Settings', '', '',NULL, NULL, @tabPath, NULL, NULL, 0, NULL, 0, @tabOrder, 1, 'ContentPane', 0, NULL, NULL, NULL, 'Friendly-Urls-Icon.gif', 0, 1, 0, 0, 1, 1, NULL, NULL, NULL, 0) END /* now insert the page list values */ SET @NewControlSource = 'DesktopModules/iFinity.UrlMaster/PageList.ascx' IF NOT EXISTS (Select * from ifty_TabModuleCreation where ControlSource = @newControlSource) BEGIN DECLARE Portal_Curs CURSOR FOR SELECT PortalId FROM Portals open Portal_Curs FETCH FROM Portal_Curs into @targetPortalId WHILE @@Fetch_Status = 0 BEGIN /* insert an admin / Page Urls page for each portal */ Declare @AdminTabId int SELECT @AdminTabId = TabId , @tabPath = TabPath + '//PageUrls' FROM Tabs t WHERE portalId = @targetPortalId AND parentId is null AND tabPath is not null AND TabOrder = 10001 --this defines the admin page SELECT @tabOrder = coalesce(max(tabOrder), 0) + 1 --taborder is the last tab in the host tabs FROM Tabs t WHERE portalId = @targetPortalId AND TabOrder > 10000 /* now insert the values to be created */ INSERT INTO ifty_TabModuleCreation ( PortalId, ControlSource, TabName, IsVisible, DisableLink, ParentId, TabIconFile, Title, Description, KeyWords, SkinSrc, ContainerSrc, TabPath, StartDate, EndDate, RefreshInterval, PageHeadText, IsSecure, TabOrder, IsAdmin, PaneName, CacheTime, Alignment, Color, Border, ModuleIconFile, Visibility, DisplayTitle, DisplayPrint, DisplaySyndicate, SetDesktopModuleAdmin, DeleteTabOnModuleRemove, TabId, ModuleId, ModuleDefId, Completed) VALUES ( @targetPortalId, @newControlSource, 'Page Urls', 1, 0, @adminTabId, 'Page-Urls-Icon16.gif', 'Page Urls', '', '',NULL, NULL, @tabPath, NULL, NULL, 0, NULL, 0, @tabOrder, 1, 'ContentPane', 0, NULL, NULL, NULL, 'Page-Urls-Icon.gif', 0, 1, 0, 0, 1, 1, NULL, NULL, NULL, 0) FETCH FROM Portal_Curs into @targetPortalId END CLOSE Portal_Curs DEALLOCATE Portal_Curs END /* create a stored procedure which takes rows out of the table, and creates tabs, modules and tab modules from it */ SET ANSI_NULLS ON System.Data.SqlClient.SqlException: Invalid object name 'sys.objects'. 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) IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.[ifty_AddTabAndTabModule]') AND type in (N'P', N'PC')) BEGIN EXEC sp_executesql @statement = N'CREATE PROCEDURE dbo.[ifty_AddTabAndTabModule] @moduleDefId int, @moduleControlId int AS BEGIN -- ============================================= -- Author: Bruce Chapman -- Create date: 5 Mar 2008 -- Description: Creates a Module, Tab and TabModule from stored values -- ============================================= SET NOCOUNT ON /* declare individual values for creating tab/module/tab module values */ DECLARE @PortalId int , @ControlSource nvarchar(256) , @TabName nvarchar(255) , @IsVisible bit , @DisableLink bit , @ParentId int , @TabIconFile nvarchar(100) , @Title nvarchar(200) , @Description nvarchar(255) , @KeyWords nvarchar(500) , @SkinSrc nvarchar(200) , @ContainerSrc nvarchar(200) , @TabPath nvarchar(255) , @StartDate datetime , @EndDate datetime , @RefreshInterval int , @PageHeadText nvarchar(500) , @IsSecure bit , @TabOrder int , @IsAdmin bit , @PaneName nvarchar(50) , @CacheTime int , @Alignment nvarchar(10) , @Color nvarchar(20) , @Border nvarchar(1) , @ModuleIconFile nvarchar(100) , @Visibility int , @DisplayTitle bit , @DisplayPrint bit , @DisplaySyndicate bit , @SetDesktopModuleAdmin bit , @DeleteTabOnModuleRemove bit , @TabId int , @ModuleId int , @Completed bit , @level int , @desktopModuleId int DECLARE Tab_Curs CURSOR FOR SELECT PortalId , tmc.ControlSource , TabName , IsVisible , DisableLink , ParentId , TabIconFile , Title , Description , KeyWords , SkinSrc , ContainerSrc , TabPath , StartDate , EndDate , RefreshInterval , PageHeadText , IsSecure , TabOrder , IsAdmin , PaneName , CacheTime , Alignment , Color , Border , ModuleIconFile , Visibility , DisplayTitle , DisplayPrint , DisplaySyndicate , SetDesktopModuleAdmin , DeleteTabOnModuleRemove , Completed FROM ifty_TabModuleCreation tmc INNER JOIN ModuleControls mc ON mc.ControlSrc = tmc.ControlSource AND mc.ModuleControlId = @ModuleCOntrolId AND mc.ModuleDefId = @moduleDefId WHERE Completed = 0 OPEN Tab_Curs FETCH FROM Tab_Curs INTO @PortalId , @ControlSource , @TabName , @IsVisible , @DisableLink , @ParentId , @TabIconFile , @Title , @Description , @KeyWords , @SkinSrc , @ContainerSrc , @TabPath , @StartDate , @EndDate , @RefreshInterval , @PageHeadText , @IsSecure , @TabOrder , @IsAdmin , @PaneName , @CacheTime , @Alignment , @Color , @Border , @ModuleIconFile , @Visibility , @DisplayTitle , @DisplayPrint , @DisplaySyndicate , @SetDesktopModuleAdmin , @DeleteTabOnModuleRemove , @Completed WHILE @@Fetch_Status = 0 BEGIN /* cursor inner loop */ /*add in a new tab */ exec AddTab @portalId, @TabName, @isVIsible, @disableLink, @parentId, @TabIconFile, @title, @Description,@KeyWords ,NULL, @skinSrc, @containerSrc, @TabPath, @startDate, @endDate, @refreshInterval, @pageHeadText, @isSecure SELECT @TabId = Max(TabId) FROM Tabs WHERE (PortalId = @portalId OR (PortalId IS NULL and @portalId is NULL)) AND TabName = @tabName AND TabPath = @tabPath IF NOT @tabId IS NULL OR NOT @TabID = NULL BEGIN /* get the level of the parent tab and add one */ /* if parent is level = 0 (-1 + 1) */ SELECT @level = Coalesce([level],-1) + 1 FROM Tabs WHERE TabId = @ParentID /* OK, tab is created, now update the order and IsAdmin flag */ UPDATE Tabs Set TabOrder = @TabOrder ,[Level] = @level where tabId = @TabId /* now create the module */ exec AddModule @portalId, @moduleDefId, @title, 0,NULL , NULL , @startDate, @endDate, 1, 0 /* retrieve the newly added module ID */ SELECT @ModuleId = ModuleId FROM Modules WHERE ModuleTitle = @title AND moduleDefId = @moduleDefId /* OK now we need to set the desktop Module Id definitions to IsAdmin=1 so that they don''t appear in the drop-down list */ if (@SetDesktopModuleAdmin = 1) BEGIN select @desktopModuleId= DesktopModuleId from ModuleDefinitions where ModuleDefId = @moduleDefId if (NOT @desktopModuleId = null or NOT @desktopModuleId is null) BEGIN update DesktopModules Set IsAdmin = 1 where DesktopModuleId = @desktopModuleId END END /* finally, add the tab module */ exec AddTabModule @tabID, @ModuleId, 0, @paneName, @cacheTime, @alignment, @color, @border ,@moduleIconFile, @visibility, @containerSrc, @displayTitle, @displayPrint, @displaySyndicate /* update the table to say it is completed */ UPDATE ifty_TabModuleCreation SET ModuleID = @moduleId ,ModuleDefId = @moduleDefId ,TabId = @tabId ,Completed = 1 WHERE ControlSource = @controlSource AND (PortalID = @portalId OR (PortalID is null and @portalId IS NULL)) AND TabName = @TabName END FETCH FROM Tab_Curs INTO @PortalId , @ControlSource , @TabName , @IsVisible , @DisableLink , @ParentId , @TabIconFile , @Title , @Description , @KeyWords , @SkinSrc , @ContainerSrc , @TabPath , @StartDate , @EndDate , @RefreshInterval , @PageHeadText , @IsSecure , @TabOrder , @IsAdmin , @PaneName , @CacheTime , @Alignment , @Color , @Border , @ModuleIconFile , @Visibility , @DisplayTitle , @DisplayPrint , @DisplaySyndicate , @SetDesktopModuleAdmin , @DeleteTabOnModuleRemove , @Completed END CLOSE Tab_Curs DEALLOCATE Tab_Curs SET NOCOUNT OFF END ' END System.Data.SqlClient.SqlException: Invalid object name 'sys.triggers'. 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) /* create a trigger that calls the stored procedure that takes records from the table and creates tabs, modules and tab modules */ IF NOT EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'dbo.[ifty_OnNewModuleControl]')) EXEC sp_executesql @statement = N'CREATE TRIGGER dbo.[ifty_OnNewModuleControl] on dbo.[ModuleControls] FOR INSERT as -- ============================================= -- Author: Bruce Chapman -- Create date: 5 Mar 2008 -- Description: Checks and runs tab and tabmodule creation -- when a TabModuleCreation record exists to do -- so. Note that this trigger drops itself -- when there are no more records in the tabModule -- creation table to run. -- ============================================= declare @moduleDefId int, @moduleControlId int, @controlSource nvarchar(255) select @moduleDefId = md.ModuleDefId , @moduleControlId = mc.ModuleControlId , @controlSource = mc.ControlSrc from ModuleDefinitions md inner join inserted mc on mc.ModuleDefId = md.ModuleDefId IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N''dbo.[ifty_TabModuleCreation]'') AND type in (N''U'')) BEGIN if exists (select * from [ifty_TabModuleCreation] where completed = 0) BEgin exec ifty_AddTabAndTabModule @moduleDefId, @moduleControlId END if not exists (select * from [ifty_TabModuleCreation] where completed = 0) BEGIN DROP TRIGGER dbo.ifty_OnNewModuleControl END END ' |
| EndJob |
End Sql execution: 01.00.00.SqlDataProvider file |
| |
| Info |
Executing 01.00.01.SqlDataProvider |
| StartJob |
Start Sql execution: 01.00.01.SqlDataProvider file |
| Failure |
SQL Execution resulted in following Exceptions: System.Data.SqlClient.SqlException: Line 13: Incorrect syntax near '('. 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) IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.[ifty_TabRedirect]') AND type in (N'U')) BEGIN CREATE TABLE dbo.[ifty_TabRedirect]( [TabId] [int] NOT NULL, [SeqNum] [int] NOT NULL, [Url] [nvarchar](200) NOT NULL, [HttpStatus] [nvarchar](50) NOT NULL, [RedirectTabId] [int] NULL, CONSTRAINT [PK_ifty_TabRedirect] PRIMARY KEY CLUSTERED ( [TabId] ASC, [SeqNum] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] END System.Data.SqlClient.SqlException: Invalid object name 'sys.objects'. 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) IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.[ifty_AddTabRedirect]') AND type in (N'P', N'PC')) BEGIN EXEC sp_executesql @statement = N' CREATE Procedure dbo.[ifty_AddTabRedirect] ( @TabId int ,@SeqNum int OUTPUT ,@Url nvarchar(400) ,@HttpStatus nvarchar(100) ,@RedirectTabId int ) AS BEGIN /* ============================================= Author: WOMBAT\Bruce Create date: 12/02/2008 Description: Adds a ifty_TabRedirect record ============================================= Return Values 0 - Successful Execution. 1 - SQL Error. Rollback Occurred. 2 - No records modified. Rollback Occurred. 3 - No records modified. Commit Occured 4 - Error in sub procedure - entire top procedure rolled back. 5 - No record(s) returned. Procedure Executed Ok. 6+ - Specific to procedure Modified by: Date: Reason for Modification: =============================================*/ SET NOCOUNT ON DECLARE @ErrStr varchar(100) /* Return error string */ DECLARE @Error int /* Return error value */ DECLARE @Rowcount int /* Return related row count */ DECLARE @TranCount int /* Keeps a record of the transaction count */ DECLARE @CurUser varChar(15) ,@CurTime dateTime SELECT @CurUser = Current_User ,@CurTime = GetDate() SELECT @TranCount = @@TRANCOUNT IF @TranCount = 0 BEGIN TRANSACTION T1 --auto sequence if not present if (@SeqNum < 1) BEGIN SELECT @SeqNum = COALESCE(Max(SeqNum),0) + 1 FROM ifty_TabRedirect WHERE TabId = @TabId END INSERT INTO ifty_TabRedirect( TabId ,SeqNum ,Url ,HttpStatus ,RedirectTabId ) VALUES ( @TabId ,@SeqNum ,@Url ,@HttpStatus ,@RedirectTabId ) SELECT @Error = @@ERROR, @RowCount = @@RowCount IF @Error <> 0 BEGIN IF @TranCount = 0 ROLLBACK TRANSACTION T1 SELECT @ErrStr=''Error in ''+ OBJECT_NAME(@@PROCID) + ''. Stmt No.=1, Db=''+db_name()+'',Err=''+CONVERT(varchar(10),@Error) RAISERROR(@ErrStr,16,1) RETURN 1 /* statement failed */ END /* finished procedure, commit and return */ IF @TranCount = 0 COMMIT TRANSACTION T1 IF @RowCount = 0 RETURN 3 /*** Procedure did nothing. Records committed */ ELSE RETURN 0 /*** Procedure executed ok. Records committed */ END ' END System.Data.SqlClient.SqlException: Invalid object name 'sys.objects'. 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) IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.[ifty_UpdateTabRedirect]') AND type in (N'P', N'PC')) BEGIN EXEC sp_executesql @statement = N'CREATE Procedure dbo.[ifty_UpdateTabRedirect] ( @TabId int ,@SeqNum int ,@Url nvarchar(400) ,@HttpStatus nvarchar(100) ,@RedirectTabId int ) AS BEGIN /* ============================================= Author: WOMBAT\Bruce Create date: 12/02/2008 Description: Updates a ifty_TabRedirect record ============================================= Return Values 0 - Successful Execution. 1 - SQL Error. Rollback Occurred. 2 - No records modified. Rollback Occurred. 3 - No records modified. Commit Occured 4 - Error in sub procedure - entire top procedure rolled back. 5 - No record(s) returned. Procedure Executed Ok. 6+ - Specific to procedure Modified by: Date: Reason for Modification: =============================================*/ SET NOCOUNT ON DECLARE @ErrStr varchar(100) /* Return error string */ DECLARE @Error int /* Return error value */ DECLARE @Rowcount int /* Return related row count */ DECLARE @TranCount int /* Keeps a record of the transaction count */ DECLARE @CurUser varChar(15) ,@CurTime dateTime SELECT @CurUser = Current_User ,@CurTime = GetDate() SELECT @TranCount = @@TRANCOUNT IF @TranCount = 0 BEGIN TRANSACTION T1 UPDATE ifty_TabRedirect Set TabId = @TabId ,SeqNum = @SeqNum ,Url = @Url ,HttpStatus = @HttpStatus ,RedirectTabId = @RedirectTabId WHERE TabId = @TabId AND SeqNum = @SeqNum SELECT @Error = @@ERROR, @RowCount = @@RowCount IF @Error <> 0 BEGIN IF @TranCount = 0 ROLLBACK TRANSACTION T1 SELECT @ErrStr=''Error in ''+ OBJECT_NAME(@@PROCID) + ''. Stmt No.=1, Db=''+db_name()+'',Err=''+CONVERT(varchar(10),@Error) RAISERROR(@ErrStr,16,1) RETURN 1 /* statement failed */ END /* finished procedure, commit and return */ IF @TranCount = 0 COMMIT TRANSACTION T1 IF @RowCount = 0 RETURN 3 /*** Procedure did nothing. Records committed */ ELSE RETURN 0 /*** Procedure executed ok. Records committed */ END ' END System.Data.SqlClient.SqlException: Invalid object name 'sys.objects'. 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) IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.[ifty_DeleteTabRedirect]') AND type in (N'P', N'PC')) BEGIN EXEC sp_executesql @statement = N'Create Procedure dbo.[ifty_DeleteTabRedirect] ( @TabId int ,@SeqNum int ) AS BEGIN /* ============================================= Author: WOMBAT\Bruce Create date: 12/02/2008 Description: Deletes a ifty_TabRedirect record ============================================= Return Values 0 - Successful Execution. 1 - SQL Error. Rollback Occurred. 2 - No records modified. Rollback Occurred. 3 - No records modified. Commit Occured 4 - Error in sub procedure - entire top procedure rolled back. 5 - No record(s) returned. Procedure Executed Ok. 6+ - Specific to procedure Modified by: Date: Reason for Modification: =============================================*/ SET NOCOUNT ON DECLARE @ErrStr varchar(100) /* Return error string */ DECLARE @Error int /* Return error value */ DECLARE @Rowcount int /* Return related row count */ DELETE FROM ifty_TabRedirect WHERE TabId = @TabId AND SeqNum = @SeqNum SELECT @Error = @@ERROR, @RowCount = @@RowCount IF @Error <> 0 BEGIN SELECT @ErrStr=''Error in ''+ OBJECT_NAME(@@PROCID) + ''. Stmt No.=1, Db=''+db_name()+'',Err=''+CONVERT(varchar(10),@Error) RAISERROR(@ErrStr,16,1) RETURN 1 /* statement failed */ END /* finished procedure, return value and exit */ RETURN 0 /*** Procedure executed ok. */ END ' END System.Data.SqlClient.SqlException: Invalid object name 'sys.objects'. 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) IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.[ifty_GetTabRedirectsForTab]') AND type in (N'P', N'PC')) BEGIN EXEC sp_executesql @statement = N'Create Procedure dbo.[ifty_GetTabRedirectsForTab] ( @TabId int ) AS BEGIN /* ============================================= Author: WOMBAT\Bruce Create date: 13/02/2008 Description: Gets a ifty_TabRedirect record ============================================= Return Values 0 - Successful Execution. 1 - SQL Error. Rollback Occurred. 2 - No records modified. Rollback Occurred. 3 - No records modified. Commit Occured 4 - Error in sub procedure - entire top procedure rolled back. 5 - No record(s) returned. Procedure Executed Ok. 6+ - Specific to procedure Modified by: Date: Reason for Modification: =============================================*/ SET NOCOUNT ON DECLARE @ErrStr varchar(100) /* Return error string */ DECLARE @Error int /* Return error value */ DECLARE @Rowcount int /* Return related row count */ SELECT TabId ,SeqNum ,Url ,HttpStatus ,RedirectTabId FROM ifty_TabRedirect WHERE TabId = @TabId SELECT @Error = @@ERROR, @RowCount = @@RowCount IF @Error <> 0 BEGIN SELECT @ErrStr=''Error in ''+ OBJECT_NAME(@@PROCID) + ''. Stmt No.=1, Db=''+db_name()+'',Err=''+CONVERT(varchar(10),@Error) RAISERROR(@ErrStr,16,1) RETURN 1 /* statement failed */ END /* finished procedure, return value and exit */ RETURN 0 /*** Procedure executed ok. */ END ' END System.Data.SqlClient.SqlException: Invalid object name 'sys.objects'. 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) IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'dbo.[ifty_GetTabsAndRedirects]') AND type in (N'P', N'PC')) BEGIN EXEC sp_executesql @statement = N' CREATE Procedure dbo.[ifty_GetTabsAndRedirects] ( @portalId int ,@includeAdminPages bit ,@includeHostPages bit ) AS BEGIN /* ============================================= Author: WOMBAT\Bruce Create date: 13/02/2008 Description: Gets all tabs and ifty_TabRedirect records ============================================= Return Values 0 - Successful Execution. 1 - SQL Error. Rollback Occurred. 2 - No records modified. Rollback Occurred. 3 - No records modified. Commit Occured 4 - Error in sub procedure - entire top procedure rolled back. 5 - No record(s) returned. Procedure Executed Ok. 6+ - Specific to procedure Modified by: Date: Reason for Modification: =============================================*/ SET NOCOUNT ON DECLARE @ErrStr varchar(100) /* Return error string */ DECLARE @Error int /* Return error value */ DECLARE @Rowcount int /* Return related row count */ Select * From Tabs Where ((@portalId = PortalId OR (PortalId is NULL and @includeHostPages = 1)) OR (@portalId = -1 AND ((PortalID is NOT NULL and @includeHOstPages = 0) OR @includeHostPages = 1))) /* admin tabs */ AND ((taBorder between 10000 and 10050 and @includeAdminPages = 1) OR (taBorder NOT between 10000 and 10050)) ORDER BY PortalId, TabOrder SELECT @Error = @@ERROR, @RowCount = @@RowCount IF @Error <> 0 BEGIN SELECT @ErrStr=''Error in ''+ OBJECT_NAME(@@PROCID) + ''. Stmt No.=1, Db=''+db_name()+'',Err=''+CONVERT(varchar(10),@Error) RAISERROR(@ErrStr,16,1) RETURN 1 /* statement failed */ END SELECT tr.TabId ,tr.SeqNum ,tr.Url ,tr.HttpStatus ,tr.RedirectTabId FROM ifty_TabRedirect tr INNER JOIN Tabs t on t.TabId = tr.TabId WHERE (@portalId = PortalId OR @portalId = -1) AND ((taBorder between 10000 and 10050 and @includeAdminPages = 1) OR (taBorder NOT between 10000 and 10050)) ORDER BY PortalId, TabOrder, SeqNum SELECT @Error = @@ERROR, @RowCount = @@RowCount IF @Error <> 0 BEGIN SELECT @ErrStr=''Error in ''+ OBJECT_NAME(@@PROCID) + ''. Stmt No.=2, Db=''+db_name()+'',Err=''+CONVERT(varchar(10),@Error) RAISERROR(@ErrStr,16,1) RETURN 1 /* statement failed */ END /* finished procedure, return value and exit */ RETURN 0 /*** Procedure executed ok. */ END ' END |
| EndJob |
End Sql execution: 01.00.01.SqlDataProvider file |
|
|
|
|
 |  |
|
|
|
Dan
It was written for sql 2005 which is why you would have got the error. I'll look into the compatibility problems and get a Sql 2000 compatibility script for you. It's probably just a case of substituting 'sys.objects' for 'sysobjects' in the 'if exists' statements.
Thanks for reminding me I need to post the minimum system requirements :)
-Bruce |
|
|
|
|  |