In the last two days I refactored a lot of Stored Procedures. Today I ran SubSonic and tried the application and I got this error that drove me crazy until 5 minutes ago:

CODE:
  1. Could not locate entry in sysdatabases for database 'sp'. No entry found with that name. Make sure that the name is entered correctly. :    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
  2.  
  3.    at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
  4.  
  5.    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
  6.  
  7.    at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
  8.  
  9.    at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
  10.  
  11.    at System.Data.SqlClient.SqlDataReader.get_MetaData()
  12.  
  13.    at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
  14.  
  15.    at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
  16.  
  17.    at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
  18.  
  19.    at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
  20.  
  21.    at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
  22.  
  23.    at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
  24.  
  25.    at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
  26.  
  27.    at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
  28.  
  29.    at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
  30.  
  31.    at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
  32.  
  33.    at SubSonic.SqlDataProvider.GetDataSet[T](QueryCommand qry)
  34.  
  35.    at SubSonic.DataService.GetDataSet[T](QueryCommand cmd)
  36.  
  37.    at SubSonic.StoredProcedure.GetDataSet[T]()
  38.  
  39.    at SubSonic.StoredProcedure.GetDataSet()
  40.  
  41.    at Edu3.Business.MetaDataLogic.LoadAllLibraries() in C:\Users\LIC.TELEVIC\_PROJECTS\_TELEVIC\Edumatic3\edumatic-3-framework-server-.NET\Edumatic3.Business\MetaDataLogic.cs:line 68
  42.  
  43.    at Edu3.Service.MetaDataService.LoadAllLibraries() in C:\Users\LIC.TELEVIC\_PROJECTS\_TELEVIC\Edumatic3\edumatic-3-framework-server-.NET\Edumatic3.Services\MetaDataService.cs:line 34

Well, I refactored the sp's and I replaced _ in names by . (that's a point). Apparently the points were the whole problem. A SP named [dbo].[sp.Edu3.CopyBlock] doesn't work, but [dbo].[sp_Edu3_CopyBlock] does...

Would like to know the reason for this...

Lieven Cardoen aka Johlero