using System;
using System.Collections.Generic;
using System.Data.Common;
using System.Data;

namespace Aitex.Core.RT.DBCore
{
    public interface IDataBaseManager
    {
        string GetSqlByNameType(string name, Type type);

        void InsertSql(string sql);

        DbDataReader ExecuteReader(string sql);

        int ExecuteNonQuery(string sql, bool isChangeDB = true);

        int ExecuteNonQuery(string sql, string[] columnsName, params object[] args);

        object ExecuteScalar(string sql, bool isChangeDB = true);

        DataSet ExecuteDataSet(string sql);

        DataTable ExecuteDataTable(string sql);

        bool ExcuteTransAction(List<string> sqlList);

        void CreateTable(string tableName, Dictionary<string, Type> columns, string primaryKey, Type primaryKeyType);

        void CreateTableIndex(string table, string index, string sql);

        string GetLocalDictionary();
    }
}
