AnyView Error: Invalid object name 'database.dbo.sysobjects' when modifying a component.

19 October 2005

Issue Description

When attempting to modify a Component in the AnyView IDS Console the following errors are generated:

 

AnyView Error: Invalid object name 'database.dbo.sysobjects'

And

The ConnectionString property has not been initialized.

 

The Component generating the errors is part of a package that was imported from another server.

 

These errors indicate that the Component was originally created using a "Fixed Database" and that the specific database name does not exist on the current SQL Server.

Solution

All content in the AnyView IDS Console is executed in the context of the default company database configured in Setup > Companies.  Components that were created with the setting of "Fixed Database" (first tab in the Component Maintenance window) are the exception.  A specific database name is included in the definition of "Fixed Database" component so it will always try to execute in the context of that specific database.  If the database does not exist the above errors are generated.

 

There are several ways to resolve this error.  The appropriate solution will depend on your intended configuration.

1) Modify the Component to use a "Variable Database"

If you modify the component so that it uses a variable database, the component will execute in the context of the default company database configured in Setup > Companies.  To modify the component definition, the DatabaseType field in the ComponentMaster table (AnyView IDS database) must be edited.  To do so:

 

  1. Locate the AnyView IDS database.
  2. From the AnyView IDS database locate the ComponentMaster table.
  3. From the ComponentMaster table locate the record for the component in question.
  4. Change the DatabaseType field from "2" (fixed database) to "1" (variable database)

 

You should now be able to modify the component from the AnyView IDS Console, and execute any Object or View that contains it.

2) Modify the Component to use a different "Fixed Database" that exists on the SQL Server.

 

If you modify the component so that it uses a different fixed database, the component will always execute in the context of the company database you specify.  To modify the component definition, the DatabaseName field in the ComponentMaster table (AnyView IDS database) must be edited.  To do so:

 

  1. Locate the AnyView IDS database.
  2. From the AnyView IDS database locate the ComponentMaster table.
  3. From the ComponentMaster table locate the record for the component in question.
  4. Change the DatabaseName field to the name of the database that contains the tables used in the component.

 

Note:  If the database that is to be used as the "fixed database" for this component does not reside on the same SQL Server instance as the AnyView IDS database, then the DatabaseName must include the name of the linked server in the format: [ServerName].DatabaseName.  For additional information on linked servers, please refer to the AnyView IDS documentation.

 

You should now be able to modify the component from the AnyView IDS Console, and execute any Object or View that contains it.
Site Map