I use a simple interceptor to intercept the sql string that nhibernate
generates for loging purposes and it works fine.

public class SessionManagerSQLInterceptor : EmptyInterceptor,
IInterceptor
    {
        NHibernate.SqlCommand.SqlString
IInterceptor.OnPrepareStatement(NHibernate.SqlCommand.SqlString sql)
        {
            NHSessionManager.Instance.NHibernateSQL = sql.ToString();
            return sql;
        }
    }

This however captures the sql statement without the parameter values..
They are replaced by '?'

Eg: .... WHERE USER0_.USERNAME = ?

The only alternative approach i found so far is using log4nets
nhibernate.sql appender which logs sql statement including parameter
values but that is not serving me well..

I need to use an interceptor so that for eg. when i catch an exception
i want to log the specific sql statement that caused the persistence
problem including the values it contained and log it mail it etc. This
speeds up debuging great deal compared to going into log files looking
for the query that caused the problem..

How can i get full sql statements including parameter values that
nhibernate generate on runtime?

-- 
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.

Reply via email to