Yeah, I can run the full NHibernate logging to see exactly what is going on for any one particular issue on my development machine. But ideally I want to programmatically capture the extra details when it happens on a customer's instance of our application (we have had some clients come across a save error that we cannot reproduce, for instance). We have nhibernate logging and show_sql turned off in our Release version.
On Apr 21, 10:09 pm, "Andrew C. Smith" <[email protected]> wrote: > Okay well, I think it might make sense to have NHIbernate perform it's > traces and see what the last few queries executed where when the error > occurs. This should start heading your down in the right path. > > I'm not sure how your configuring NHibernate by using the "show_sql" in the > hibernate-configuration file to export the sql the NHibernate runs to the > console output or configuring log4net for NHibernate. > > On Tue, Apr 21, 2009 at 11:02 PM, dvanorny <[email protected]> wrote: > > > Yes, we do have validation build into our business layer -- so this > > exact database error should never happen. The problem I would like to > > solve is: when a client gets a saving error (even if it is a column > > length issue) I want to know which database table the error came > > from. There are over 100 children database tables that are being > > handled by the one NHibernate Save command, and it is virtually > > impossible to figure out where a random database saving error occurs > > when we are not given any details. Hope that helps. > > > On Apr 21, 9:47 pm, "Andrew C. Smith" <[email protected]> wrote: > > > I don't think NHibernate provides you the exact problem, But I can tell > > you > > > why this is probably happening. I've had this error before and it was > > when I > > > was trying to put more information into a column than it allowed. such as > > > shoving a 50 character property into a 4 character field. This can be > > easy > > > to figure out if you take a look at your schema and do some validation on > > > your entities before you execute a save. > > > > Maybe look into using an interceptor to perform the validation of your > > > entity for the required lengths. > > > > On Tue, Apr 21, 2009 at 6:04 PM, DanVan <[email protected]> wrote: > > > > > I am calling Save on an nHibernate object that has many children > > > > attached to it. Upon save, sometimes an error happens when nHibernate > > > > starts inserting into my sql database ("The data was truncated while > > > > converting from one data type to another." for instance). Following > > > > are the top lines of the Exception. My question is, how do I figure > > > > out which table/column is the culprit within my save error? > > > > > at System.Data.SqlServerCe.SqlCeCommand.ProcessResults(Int32 hr) > > > > at System.Data.SqlServerCe.SqlCeCommand.ExecuteCommandText(IntPtr& > > > > pCursor, Boolean& isBaseTableCursor) > > > > at System.Data.SqlServerCe.SqlCeCommand.ExecuteCommand > > > > (CommandBehavior behavior, String method, ResultSetOptions options) > > > > at System.Data.SqlServerCe.SqlCeCommand.ExecuteNonQuery() > > > > at NHibernate.AdoNet.AbstractBatcher.ExecuteNonQuery(IDbCommand > > > > cmd) > > > > at NHibernate.Id.Insert.AbstractSelectingDelegate.PerformInsert > > > > (SqlCommandInfo insertSQL, ISessionImplementor session, IBinder > > > > binder) > > > > at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object > > > > [] fields, Boolean[] notNull, SqlCommandInfo sql, Object obj, > > > > ISessionImplementor session) > > > > at NHibernate.Persister.Entity.AbstractEntityPersister.Insert(Object > > > > [] fields, Object obj, ISessionImplementor session) > > > > at NHibernate.Action.EntityIdentityInsertAction.Execute() --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nhusers?hl=en -~----------~----~----~----~------~----~------~--~---
