|
|
|
Joined: 6/7/2004
Posts: 152
|
|
|
Hi
upgraded to DNN 4.8 without issues. However, when I decided to install the Announcement module 4.00 I get the following error message :
Thanks in advance for your help
Leif
StartJob |
Début de traitement de script Sql : 04.00.00.SqlDataProvider |
Failure |
Erreur pendant la génération SQL : System.Data.SqlClient.SqlException: Cannot resolve collation conflict for equal to operation. 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 procedure dbo.dnnAnnouncements_Get @ItemId int, @ModuleId int as select dbo.Announcements.ItemId, dbo.Announcements.ModuleId, dbo.Announcements.CreatedByUser, dbo.Announcements.CreatedDate, dbo.Announcements.Title, dbo.Announcements.ImageSource, dbo.Announcements.URL, dbo.Announcements.Description, dbo.Announcements.ViewOrder, dbo.Announcements.PublishDate, dbo.Announcements.ExpireDate, dbo.UrlTracking.TrackClicks, dbo.UrlTracking.NewWindow from dbo.Announcements left outer join dbo.UrlTracking on dbo.Announcements.URL = dbo.UrlTracking.Url and dbo.UrlTracking.ModuleId = @ModuleID where dbo.Announcements.ItemId = @ItemId and dbo.Announcements.ModuleId = @ModuleId System.Data.SqlClient.SqlException: Cannot resolve collation conflict for equal to operation. 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 procedure dbo.dnnAnnouncements_GetCurrent @ModuleId int, @StartDate datetime as select dbo.Announcements.ItemId, dbo.Announcements.ModuleId, dbo.Announcements.CreatedByUser, dbo.Announcements.CreatedDate, dbo.Announcements.Title, dbo.Announcements.ImageSource, dbo.Announcements.URL, dbo.Announcements.Description, dbo.Announcements.ViewOrder, dbo.Announcements.PublishDate, dbo.Announcements.ExpireDate, dbo.UrlTracking.TrackClicks, dbo.UrlTracking.NewWindow from dbo.Announcements left outer join dbo.UrlTracking on dbo.Announcements.URL = dbo.UrlTracking.Url and dbo.UrlTracking.ModuleId = @ModuleID where dbo.Announcements.ModuleId = @ModuleId and ( ((dbo.Announcements.PublishDate >= @StartDate) or @StartDate is null) and (dbo.Announcements.PublishDate <= GETDATE()) ) and ( (dbo.Announcements.ExpireDate > getDate()) or (dbo.Announcements.ExpireDate is null) ) order by dbo.Announcements.ViewOrder asc, dbo.Announcements.PublishDate desc System.Data.SqlClient.SqlException: Cannot resolve collation conflict for equal to operation. 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 procedure dbo.dnnAnnouncements_GetExpired @ModuleId int as select dbo.Announcements.ItemId, dbo.Announcements.ModuleId, dbo.Announcements.CreatedByUser, dbo.Announcements.CreatedDate, dbo.Announcements.Title, dbo.Announcements.ImageSource, dbo.Announcements.URL, dbo.Announcements.Description, dbo.Announcements.ViewOrder, dbo.Announcements.PublishDate, dbo.Announcements.ExpireDate, dbo.UrlTracking.TrackClicks, dbo.UrlTracking.NewWindow from dbo.Announcements left outer join dbo.UrlTracking on dbo.Announcements.URL = dbo.UrlTracking.Url and dbo.UrlTracking.ModuleId = @ModuleID where dbo.Announcements.ModuleId = @ModuleId and dbo.Announcements.ExpireDate <= getDate() order by dbo.Announcements.ViewOrder asc, dbo.Announcements.PublishDate desc System.Data.SqlClient.SqlException: Cannot resolve collation conflict for equal to operation. 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 procedure dbo.dnnAnnouncements_GetAll @ModuleId int, @StartDate datetime, @EndDate datetime as select dbo.Announcements.ItemId, dbo.Announcements.ModuleId, dbo.Announcements.CreatedByUser, dbo.Announcements.CreatedDate, dbo.Announcements.Title, dbo.Announcements.ImageSource, dbo.Announcements.URL, dbo.Announcements.Description, dbo.Announcements.ViewOrder, dbo.Announcements.PublishDate, dbo.Announcements.ExpireDate, dbo.UrlTracking.TrackClicks, dbo.UrlTracking.NewWindow from dbo.Announcements left outer join dbo.UrlTracking on dbo.Announcements.URL = dbo.UrlTracking.Url and dbo.UrlTracking.ModuleId = @ModuleID where dbo.Announcements.ModuleId = @ModuleId and ( ((dbo.Announcements.PublishDate >= @StartDate) or @StartDate is null) and ((dbo.Announcements.PublishDate <= @EndDate) or @EndDate is null) ) order by dbo.Announcements.ViewOrder asc, dbo.Announcements.PublishDate desc |
|
|
|
|
| |
|
|
|
This is a known issue where specific modules do not support collation that is other than the default latin US one.
|
|
|
|
| |
|
|
|
|
erikvanballegoij.com Joined: 4/7/2004
Posts: 4445
|
|
|
Although Mitch is correct in theory, this is not a know issue of the Announcement module, and has never been. The announcement module supports all collations that are supported by DNN (in general, DNN does not support case sensitive collations
The issue here is probably just the other way around. Did you by any change migrate your DNN database from another server? If so, chances are that the collation of that other server where different than the collation of your current server. One of the features of SQL Server is that it keeps the original collation for existing objects in the database, but will apply the new server default collation to newly created objects. This error will show itself upon installation of new modules (you would probably have the same issue with a lot of other modules as well). So yes, Mitch was right that this is a know issue..
I wrote a blog about that a long time ago, please read it here: http://www.apollo-software.nl/Blog/tabid/169/EntryID/2/language/en-US/Default.aspx
Erik van Ballegoij, Former DNN Corp. Employee and DNN Expert
DNN Blog | Twitter: @erikvb | LinkedIn:
|
|
|
|
| |
|
|
Joined: 6/7/2004
Posts: 152
|
|
|
Thanks for your replies guys,
No I didn't migrate from another server I only upgraded to DNN 4.8. At this time I don't have a problem with any of the other modules.
Thanks
Leif
|
|
|
|
| |
|
|
|
|
erikvanballegoij.com Joined: 4/7/2004
Posts: 4445
|
|
|
Leif, the only way you can get this error is collations do not match. The announcement module does not force collations in the scripts, and will use the database default as a result. Hence, the only option is that the collation of the field in the table that is used in the join of the sprocs that error is different than the database default. One option is that you imported the database from another server, the other option is that something or someone changed the database default collation.. or that something or something changed the collation of the fields that are used in the announcements sprocs that are erroring out.
So you need to check a few things.
- check the database default collation. You can see that in the DB properties in management studio, or execute this command on the db:
SELECT
DATABASEPROPERTYEX('DotNetNuke', 'Collation'); -- Replace DotNetNuke with the actual name of your database
- From SQL Management Studio, open the Announcements table in design view, and verify that all text fields have the database default collation. Especially check the URL field
- the table causing the troubles is UrlTracking. Verify that the collation of field Url is also set to database default
It is hard to say how collation conflicts like this come about. They are not easy to solve, as you will have to set collation of all fields to the database default. In my blog, i pointed to an article that shows how you can do that with an sql script. That script will set collation of all text fields in your db to the db default. This is the link to that article: http://www.databasejournal.com/scripts/article.php/3494951
Erik van Ballegoij, Former DNN Corp. Employee and DNN Expert
DNN Blog | Twitter: @erikvb | LinkedIn:
|
|
|
|
| |