using System.Collections.Generic;
using System.Threading.Tasks;
namespace Sozsoft.SqlQueryManager.Domain.Services;
///
/// Result of SQL query execution
///
public class SqlExecutionResult
{
public bool Success { get; set; }
public string Message { get; set; }
public IEnumerable Data { get; set; }
public int RowsAffected { get; set; }
public long ExecutionTimeMs { get; set; }
public Dictionary Metadata { get; set; }
public SqlExecutionResult()
{
Metadata = new Dictionary();
}
}
///
/// Service for executing T-SQL commands against configured data sources.
///
public interface ISqlExecutorService
{
/// Execute a SELECT query and return results.
Task ExecuteQueryAsync(
string sql,
string dataSourceCode,
Dictionary parameters = null);
/// Execute a non-query command (INSERT, UPDATE, DELETE, DDL).
Task ExecuteNonQueryAsync(
string sql,
string dataSourceCode,
Dictionary parameters = null);
/// Execute scalar query (returns single value).
Task ExecuteScalarAsync(
string sql,
string dataSourceCode,
Dictionary parameters = null);
/// Validate SQL syntax (basic validation).
Task<(bool IsValid, string ErrorMessage)> ValidateSqlAsync(string sql);
}