DNN 05.02.02 DMX 05.02.02
When I run the script "Add DMX Search to DNN Search " I got the message
System.Data.SqlClient.SqlException: Cannot insert the value NULL into column 'TabID', table 'C:\INETPUB\INTRANET\APP_DATA\MIJNINTRA.MDF.dbo.TabModules'; column does not allow nulls. INSERT fails. The statement has been terminated.
Can anyone tell me how to solve thi problem?
Kind regards,
Ad Spelt
00: - Retrieving Settings 00: - PortalId: Success 00: - TabId: Success 00: - ModuleId: Success 00: - Finding Script: Success 00: - Reading 'C:\Inetpub\Intranet\DesktopModules\Bring2mind\DMX\Admin\Scripts\SetSearchPane.Resources': Success 00: - Script title: Add DMX Search to DNN Search Results Page 00: - Checking permission: Success 00: - Script description: This script adds DMX search to your DNN Search Results page. 00: - Processing script:
BEGIN DECLARE @SRT INT SELECT @SRT = t.TabId FROM {databaseOwner}{objectQualifier}TabModules tm INNER JOIN {databaseOwner}{objectQualifier}Modules m ON m.ModuleId=tm.ModuleId INNER JOIN {databaseOwner}{objectQualifier}ModuleDefinitions md ON m.ModuleDefID = md.ModuleDefID INNER JOIN {databaseOwner}{objectQualifier}DesktopModules dm ON dm.DesktopModuleID = md.DesktopModuleID INNER JOIN {databaseOwner}{objectQualifier}Tabs t ON t.TabID = tm.TabId WHERE dm.ModuleName='Search Results' AND m.PortalID=56 IF (SELECT COUNT(tm.TabId) FROM {databaseOwner}{objectQualifier}TabModules tm INNER JOIN {databaseOwner}{objectQualifier}Modules m ON m.ModuleId=tm.ModuleId INNER JOIN {databaseOwner}{objectQualifier}ModuleDefinitions md ON m.ModuleDefID = md.ModuleDefID INNER JOIN {databaseOwner}{objectQualifier}DesktopModules dm ON dm.DesktopModuleID = md.DesktopModuleID INNER JOIN {databaseOwner}{objectQualifier}Tabs t ON t.TabID = tm.TabId WHERE dm.ModuleName='Bring2mind\DMX' AND t.TabId=@SRT) = 0 BEGIN DECLARE @MDID INT SELECT @MDID = md.ModuleDefID FROM {databaseOwner}{objectQualifier}ModuleDefinitions md INNER JOIN {databaseOwner}{objectQualifier}DesktopModules dm ON dm.DesktopModuleID = md.DesktopModuleID WHERE dm.ModuleName='Bring2mind\DMX' DECLARE @MID INT INSERT INTO {databaseOwner}{objectQualifier}Modules (ModuleDefID, ModuleTitle, AllTabs, IsDeleted, InheritViewPermissions, PortalID) VALUES (@MDID, 'DMX Search Results', 0, 0, 1, 0) SELECT @MID = SCOPE_IDENTITY() INSERT INTO {databaseOwner}{objectQualifier}TabModules (TabID, ModuleID, PaneName, ModuleOrder, CacheTime, Alignment, Visibility, DisplayTitle, DisplayPrint, DisplaySyndicate) VALUES (@SRT, @MID, 'ContentPane', 2, 0, 'left', 0, 1, 1, 0) INSERT INTO {databaseOwner}{objectQualifier}ModuleSettings (ModuleID, SettingName, SettingValue) VALUES (@MID, 'DefaultPane', 'bring2mind/dmx/search.ascx') END END
00: - Running script: Success
bij System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) bij System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) bij System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) bij System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) bij System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async) bij System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) bij System.Data.SqlClient.SqlCommand.ExecuteNonQuery() bij Bring2mind.DNN.Modules.DMX.Data.SqlDataProvider.ᜁ(String A_0) bij Bring2mind.DNN.Modules.DMX.Data.SqlDataProvider.ExecuteScript(String Script) BEGIN DECLARE @SRT INT SELECT @SRT = t.TabId FROM dbo.TabModules tm INNER JOIN dbo.Modules m ON m.ModuleId=tm.ModuleId INNER JOIN dbo.ModuleDefinitions md ON m.ModuleDefID = md.ModuleDefID INNER JOIN dbo.DesktopModules dm ON dm.DesktopModuleID = md.DesktopModuleID INNER JOIN dbo.Tabs t ON t.TabID = tm.TabId WHERE dm.ModuleName='Search Results' AND m.PortalID=56 IF (SELECT COUNT(tm.TabId) FROM dbo.TabModules tm INNER JOIN dbo.Modules m ON m.ModuleId=tm.ModuleId INNER JOIN dbo.ModuleDefinitions md ON m.ModuleDefID = md.ModuleDefID INNER JOIN dbo.DesktopModules dm ON dm.DesktopModuleID = md.DesktopModuleID INNER JOIN dbo.Tabs t ON t.TabID = tm.TabId WHERE dm.ModuleName='Bring2mind\DMX' AND t.TabId=@SRT) = 0 BEGIN DECLARE @MDID INT SELECT @MDID = md.ModuleDefID FROM dbo.ModuleDefinitions md INNER JOIN dbo.DesktopModules dm ON dm.DesktopModuleID = md.DesktopModuleID WHERE dm.ModuleName='Bring2mind\DMX' DECLARE @MID INT INSERT INTO dbo.Modules (ModuleDefID, ModuleTitle, AllTabs, IsDeleted, InheritViewPermissions, PortalID) VALUES (@MDID, 'DMX Search Results', 0, 0, 1, 0) SELECT @MID = SCOPE_IDENTITY() INSERT INTO dbo.TabModules (TabID, ModuleID, PaneName, ModuleOrder, CacheTime, Alignment, Visibility, DisplayTitle, DisplayPrint, DisplaySyndicate) VALUES (@SRT, @MID, 'ContentPane', 2, 0, 'left', 0, 1, 1, 0) INSERT INTO dbo.ModuleSettings (ModuleID, SettingName, SettingValue) VALUES (@MID, 'DefaultPane', 'bring2mind/dmx/search.ascx') END END
00:00:00.125 - Instantiating Bring2mind.DNN.Modules.DMX.Framework.ModuleController, BRING2MIND.DNN.MODULES.DMX.CORE: Success 00:00:00.125 - Finished Running Script
Dear Peter,
Thank you for your reaction. Your right,, it is easily to do it manually. It works great!
I have been looking for a solution for the error and I think I found it. In the script is a "WHERE" statement. In my database, the Modulename of the Search Result-page is SearchResults, without space between the words.
Ad
WHERE dm.ModuleName='Search Results' WHERE dm.ModuleName='SearchResults'
Please note we are located in Europe. Business hours are between 9 AM and 6 PM local time (Central European Time) which corresponds to 3 AM and noon EST.