views:

277

answers:

1

I have setup and configured to SubSonic to work with a C# application I am writing. I can generate the data wrapper classes and use them perfectly in my code, but whenever I get ready to script the schema out via the subcommander tool using the arguments "version \out FileLocation", I am getting an error (see error message below).

It worked previously but I have made some schema changes to my db since then.

Are there certain common caveats and limitations of the SubSonic version command as far as schema structure is concerned (computed columns, functions or stored procedures using "for xml", etc)? thanks in advance for any enlightenment anyone could provide on this issue...

ERROR: Trying to execute version Error Message: Microsoft.SqlServer.Management.Smo.FailedOperationException: Script transfer failed. ---> Microsoft.SqlServer.Management.Smo.SmoException: An exception occurred while executing a Transact-SQL statement. ---> Microsoft.SqlServer.Management.Common.ExecutionFailureException: An exception occurred while executing a Transact-SQL statement or batch. ---> System.Data.SqlClient.SqlException: A transaction that was started in a MARS batch is still active at the end of the batch. The transaction is rolled back. 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 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType) --- End of inner exception stack trace --- at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType) at Microsoft.SqlServer.Management.Smo.ExecuteSql.ExecuteImmediate(String query) at Microsoft.SqlServer.Management.Smo.ExecuteSql.ExecuteWithResults(StringCollection query, Object con) at Microsoft.SqlServer.Management.Smo.SqlEnumDependencies.EnumDependencies(Object ci, DependencyRequest rd) at Microsoft.SqlServer.Management.Smo.Enumerator.EnumDependencies(Object connectionInfo, DependencyRequest dependencyRequest) at Microsoft.SqlServer.Management.Smo.ExecutionManager.GetDependencies(DependencyRequest dependencyRequest) --- End of inner exception stack trace --- at Microsoft.SqlServer.Management.Smo.ExecutionManager.GetDependencies(DependencyRequest dependencyRequest) at Microsoft.SqlServer.Management.Smo.Transfer.GetObjectList() at Microsoft.SqlServer.Management.Smo.Transfer.ScriptTransfer() --- End of inner exception stack trace --- at Microsoft.SqlServer.Management.Smo.Transfer.ScriptTransfer() at SubSonic.SubCommander.DBScripter.ScriptSchema(String connectionString) in C:\svn\subsonicproject\trunk\SubCommander\DBScripter.cs:line 73 at SubSonic.SubCommander.Program.ScriptSchema() in C:\svn\subsonicproject\trunk\SubCommander\Program.cs:line 696 at SubSonic.SubCommander.Program.Main(String[] args) in C:\svn\subsonicproject\trunk\SubCommander\Program.cs:line 68 Execution Time: 6833ms

A: 

Ok, I figured it out myself, apparantly it had something to do with my connection string, which originally included the following info ServerName;Catalog;UserName;Password;Persist Security Info= true; Max Pool Size= pool_size; Asynchronus Processing=true;

I took removed max pool size specification, the persist security info, and the async processing specifications from my connection string and viola! it works. Thanks anyway...