sozsoft-platform/api/modules/Sozsoft.SqlQueryManager/Sozsoft.SqlQueryManager.Domain/Services/ISqlExecutorService.cs

50 lines
1.5 KiB
C#
Raw Normal View History

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