Installation and deployment Questions on installation, system configuration and deployment to the live server.
Version 4.x > Installation and deployment > Database error View modes: 
User avatar
Member
Member
info-plan-soft - 3/4/2009 6:03:02 AM
   
Database error
I'm trying to install the new free edition, build 4.0.3328

In the database setup - Step 3, I receive the following error:

ERROR:An error occured: [DataConnection.ExecuteQuery]: Query: CREATE PROCEDURE Proc_CMS_ACL_ClearACLs @NodeID int, @NewACLID int AS BEGIN update CMS_Tree SET NodeACLID = @NewACLID where NodeID=@NodeID delete from CMS_ACLItem where ACLID in (select CMS_ACL.ACLID from CMS_ACL left join CMS_Tree on cms_tree.nodeid = cms_acl.aclownernodeid where (cms_tree.nodeid is null) or (cms_tree.nodeid is not null and cms_tree.nodeaclid <> cms_acl.aclid)) delete from cms_acl where aclid in (select cms_acl.aclid from cms_acl left join cms_tree on cms_tree.nodeid = cms_acl.aclownernodeid where (cms_tree.nodeid is null) or (cms_tree.nodeid is not null and cms_tree.nodeaclid <> cms_acl.aclid)) END : caused exception: The multi-part identifier "cms_tree.nodeid" could not be bound. The multi-part identifier "cms_acl.aclownernodeid" could not be bound. The multi-part identifier "cms_tree.nodeid" could not be bound. The multi-part identifier "cms_tree.nodeid" could not be bound. The multi-part identifier "cms_tree.nodeaclid" could not be bound. The multi-part identifier "cms_acl.aclid" could not be bound

Can somebody help me out here?

User avatar
Kentico Consulting
Kentico Consulting
kentico_mirekr - 3/4/2009 6:58:31 AM
   
RE:Database error
Hi,

Could you please confirm that your MS SQL database server is using case insensitive (CI) collation?

http://devnet.kentico.com/docs/devguide/system_requirements.htm

Best Regards,
Miroslav Remias

User avatar
Member
Member
info-plan-soft - 3/4/2009 1:48:58 PM
   
RE:Database error
A good question!! I'm un a hosted environment, I'll ask their helpdesk...

User avatar
Member
Member
info-plan-soft - 3/5/2009 6:24:33 PM
   
RE:Database error
Well, the server did not use it, but they changed the settings and now it should.

However, it didn't solve the problem. I created a new database, tried it again, but I get exactly the same error.

Any suggestions?

User avatar
Kentico Consulting
Kentico Consulting
kentico_mirekr - 3/10/2009 4:11:28 AM
   
RE:Database error
Hi,

It seems that your database is still using CS collation. In this case I would recommend you to manually change the lower letter occurrences in ~\Webinstaller\SQL\Proc_CMS_ACL_ClearACLs.sql file.

Example:

Change cms_tree.nodeid to CMS_Tree.NodeID etc.

Thank you,

Best Regards,
Miroslav Remias

User avatar
Member
Member
info-plan-soft - 3/11/2009 3:46:38 PM
   
RE:Database error
Yes, it did.

I spend hours tp change many files, but then my host finally changed the setting, and the installation went OK

Thanks so far

User avatar
Member
Member
info-plan-soft - 3/13/2009 6:35:07 AM
   
RE:Database error: Must declare the scalar variable
Previously, I posted that the installation went OK.

But I many pages in CMSDesk. I still receive all kinds of database errors, something like:

Must declare the scalar variable "@ID".

The name of the scalar variable can change. After many hours trying and searching the internet, I finally found an article that exactly describes this problem, and also the cause of it:

http://aleemkhan.wordpress.com/2006/08/28/why-collation-affects-t-sql-syntax/

Fortunatly, my host did have a SQL 2000 Server where the IDENTIFIER_CASE parameter was set to MIXED. When I run teh wizard again, now everything works OK.

So the documentation isn't complete. Not only does the server need case insensitive collation, also the IDENTIFIER_CASE parameter should be set to MIXED!

If it isn't set to mixed, the wizard will stop in Step 3 when trying to create PROCEDURE [Proc_Analytics_ProcessLog], with the error:

Must declare the scalar variable "@StatisticsID". Must declare the scalar variable "@StatisticsID".

This is because this variable is declared as "@statisticsID" in this file

User avatar
Kentico Developer
Kentico Developer
kentico_martind - 3/17/2009 8:26:17 AM
   
RE:Database error: Must declare the scalar variable
Hello,

Thank you for letting us know about this requirement. We haven't realized this setting is necessary as IDENTIFIER_CASE parameter was probably set to MIXED on all SQL servers where we tested Kentico CMS by default. I'm sorry for this inconvenience. We will mention this requirement in our documentation since next version.

Best Regards,
Martin Dobsicek

User avatar
Member
Member
info-plan-soft - 3/17/2009 8:38:21 AM
   
RE:Database error: Must declare the scalar variable
That's good, however especially in a hosted environment it will be very hard to change this setting, since it will affect all other databases as well! A better solution would be to change all scripts to (for example) lower case, so there is no need any more for this requirement...

User avatar
Kentico Developer
Kentico Developer
kentico_martind - 3/26/2009 9:51:19 AM
   
RE:Database error: Must declare the scalar variable
Hello,

I agree it would help in some enviroments. We will consider changing scripts to lower case in the future.

Best Regards,
Martin Dobsicek

User avatar
Member
Member
forum-muramatsu.com - 3/30/2009 9:41:18 PM
   
RE:Database error: Must declare the scalar variable
info-plan-soft wrote: Previously, I posted that the installation went OK.

But I many pages in CMSDesk. I still receive all kinds of database errors, something like:

Must declare the scalar variable "@ID".

The name of the scalar variable can change. After many hours trying and searching the internet, I finally found an article that exactly describes this problem, and also the cause of it:

http://aleemkhan.wordpress.com/2006/08/28/why-collation-affects-t-sql-syntax/

Fortunatly, my host did have a SQL 2000 Server where the IDENTIFIER_CASE parameter was set to MIXED. When I run teh wizard again, now everything works OK.

So the documentation isn't complete. Not only does the server need case insensitive collation, also the IDENTIFIER_CASE parameter should be set to MIXED!

If it isn't set to mixed, the wizard will stop in Step 3 when trying to create PROCEDURE [Proc_Analytics_ProcessLog], with the error:

Must declare the scalar variable "@StatisticsID". Must declare the scalar variable "@StatisticsID".

This is because this variable is declared as "@statisticsID" in this file

If You are db_owner or Sys Admin of database try this:
Alter Database KenticoCMS
COLLATE SQL_Latin1_General_CP1_CI_AI

Or if You need another Collate use this to get a list of valide collation
SELECT *
FROM fn_helpcollations()