/// <summary> /// 记录 Sql 执行过程。 /// /// 把 SQL 语句及参数,写到 SQL_TRACE_FILE 配置所对应的文件中。 /// </summary> /// <param name="sql"></param> /// <param name="parameters"></param> /// <param name="connectionSchema"></param> public override void LogDbAccessed(string sql, IDbDataParameter[] parameters, DbConnectionSchema connectionSchema) { if (_sqlTraceFile == null) { _sqlTraceFile = ConfigurationHelper.GetAppSettingOrDefault("SQL_TRACE_FILE", string.Empty); } if (_sqlTraceFile.Length > 0) { var content = sql; if (parameters.Length > 0) { var pValues = parameters.Select(p => { var value = p.Value; if (value is string) { value = '"' + value.ToString() + '"'; } return value; }); content += Environment.NewLine + "Parameters:" + string.Join(",", pValues); } content = DateTime.Now + Environment.NewLine + "Database: " + connectionSchema.Database + Environment.NewLine + content + "\r\n\r\n\r\n"; AppendAllText(_sqlTraceFile, content); } }
private void Init(DbConnectionSchema schema, IDbConnection connection = null) { this._connectionSchema = schema; this._factory = ConverterFactory.GetFactory(schema.ProviderName); this._converter = ConverterFactory.Create(schema.ProviderName); if (connection == null) { this._connection = this._factory.CreateConnection(); this._connection.ConnectionString = schema.ConnectionString; this._connectionCreatedBySelf = true; } else { this._connection = connection; } }
public override void LogDbAccessed(string sql, IDbDataParameter[] parameters, DbConnectionSchema connectionSchema) { var content = sql; if (parameters.Length > 0) { var pValues = parameters.Select(p => { var value = p.Value; if (value is string) value = '"' + value.ToString() + '"'; return value; }); content += Environment.NewLine + "Parameters:" + string.Join(",", pValues); } content = DateTime.Now + "\r\nDatabase: " + connectionSchema.Database + "\r\n" + content + "\r\n\r\n\r\n"; TraceMessage(content); }
/// <summary> /// Constructor /// </summary> /// <param name="schema">the connection schema.</param> /// <param name="dbConnection">use a exsiting connection, rather than to create a new one.</param> public DbAccesser(DbConnectionSchema schema, IDbConnection dbConnection) { this.Init(schema, dbConnection); }
private void Init(DbConnectionSchema schema, IDbConnection connection = null) { this._connectionSchema = schema; this._factory = ConverterFactory.GetFactory(schema.ProviderName); this._converter = ConverterFactory.Create(schema.ProviderName); if (connection == null) { this._connection = this._factory.CreateConnection(); this._connection.ConnectionString = schema.ConnectionString; this._connectionCreatedBySelf = true; } else { this._connection = connection; } }
/// <summary> /// Constructor /// /// this accessor uses schema to find its connection string, and creates connection by itself. /// </summary> /// <param name="schema">the connection schema.</param> public DbAccesser(DbConnectionSchema schema) { this.Init(schema); }
/// <summary> /// Constructor /// </summary> /// <param name="schema">the connection schema.</param> /// <param name="dbConnection">use a exsiting connection, rather than to create a new one.</param> public DbAccesser(DbConnectionSchema schema, IDbConnection dbConnection) { this.Init(schema, dbConnection); }
/// <summary> /// Constructor /// /// this accessor uses schema to find its connection string, and creates connection by itself. /// </summary> /// <param name="schema">the connection schema.</param> public DbAccesser(DbConnectionSchema schema) { this.Init(schema); }
public DbAccessedEventArgs(string sql, IDbDataParameter[] parameters, DbConnectionSchema connectionSchema) { this.Sql = sql; this.Parameters = parameters; this.ConnectionSchema = connectionSchema; }
/// <summary> /// 记录 Sql 执行过程。 /// </summary> /// <param name="sql">The SQL.</param> /// <param name="parameters">The parameters.</param> /// <param name="connectionSchema">The connection schema.</param> public static void LogDbAccessed(string sql, IDbDataParameter[] parameters, DbConnectionSchema connectionSchema) { _dbAccessedCount++; _threadDbAccessedCount++; lock (_lock) { try { _impl.LogDbAccessed(sql, parameters, connectionSchema); } catch { } } if (EnableSqlObervation) { var handler1 = _threadDbAccessedHandler; var handler2 = DbAccessed; if (handler1 != null || handler2 != null) { var args = new DbAccessedEventArgs(sql, parameters, connectionSchema); if (handler1 != null) { handler1(null, new DbAccessedEventArgs(sql, parameters, connectionSchema)); } if (handler2 != null) { handler2(null, new DbAccessedEventArgs(sql, parameters, connectionSchema)); } } } }
/// <summary> /// 记录 Sql 执行过程。 /// </summary> /// <param name="sql"></param> /// <param name="parameters"></param> /// <param name="connectionSchema"></param> public virtual void LogDbAccessed(string sql, IDbDataParameter[] parameters, DbConnectionSchema connectionSchema) { }