// ------------------------------------------------- // SQL Logging // ----------- protected virtual void LogSql(Object[] args, Type[] argTypes) { // [SqlLogHandler] SqlLogHandler sqlLogHandler = GetSqlLogHander(); bool existsSqlLogHandler = sqlLogHandler != null; // [SqlResultHandler] SqlResultHandler sqlResultHandler = GetSqlResultHander(); bool existsSqlResultHandler = sqlResultHandler != null; // [SqlLogRegistry] InternalSqlLogRegistry sqlLogRegistry = InternalSqlLogRegistryLocator.Instance; bool existsSqlLogRegistry = sqlLogRegistry != null; if (IsLogEnabled() || existsSqlLogHandler || existsSqlResultHandler || existsSqlLogRegistry) { String displaySql = GetCompleteSql(args); if (IsLogEnabled()) { Log((IsContainsLineSeparatorInSql() ? GetLineSeparator() : "") + displaySql); } if (existsSqlLogHandler) // DBFlute provides { sqlLogHandler.Invoke(this.Sql, displaySql, args, argTypes); } if (existsSqlLogRegistry) // S2Container provides (But Actually DBFlute provides at CSharp) { sqlLogRegistry.Add(CreateInternalSqlLog(displaySql, args, argTypes)); } PutObjectToMapContext("df:DisplaySql", displaySql); } }
public void ClearSqlCache() { InternalSqlLogRegistry sqlLogRegistry = FindInternalSqlLogRegistry(); if (sqlLogRegistry == null) { return; } sqlLogRegistry.Clear(); }
public IList <String> ExtractDisplaySqlList() { InternalSqlLogRegistry sqlLogRegistry = FindInternalSqlLogRegistry(); if (sqlLogRegistry == null) { return(new List <String>()); } IList <String> sqlList = new List <String>(); foreach (InternalSqlLog sqlLog in sqlLogRegistry.SqlLogList) { sqlList.Add(sqlLog.CompleteSql); } return(sqlList); }
protected String GetLastCompleteSql() { try { InternalSqlLogRegistry sqlLogRegistry = FindInternalSqlLogRegistry(); if (sqlLogRegistry == null) { return(null); } InternalSqlLog sqlLog = sqlLogRegistry.Last; if (sqlLog == null) { return(null); } return(sqlLog.CompleteSql); } catch (Exception) { return(null); } }