mirror of
				https://github.com/nsnail/FreeSql.git
				synced 2025-11-04 17:20:49 +08:00 
			
		
		
		
	- 增加 IAdo.ExecuteConnectTest 快速判断连接是否可用 #113;
This commit is contained in:
		@@ -95,6 +95,27 @@ namespace FreeSql.Internal.CommonProvider
 | 
			
		||||
            var props = tb?.Properties ?? type.GetPropertiesDictIgnoreCase();
 | 
			
		||||
            return props;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public bool ExecuteConnectTest()
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                switch (DataType)
 | 
			
		||||
                {
 | 
			
		||||
                    case DataType.Oracle:
 | 
			
		||||
                    case DataType.OdbcOracle:
 | 
			
		||||
                        ExecuteNonQuery(" SELECT 1 FROM dual");
 | 
			
		||||
                        return true;
 | 
			
		||||
                }
 | 
			
		||||
                ExecuteNonQuery(" SELECT 1");
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public List<T> Query<T>(string cmdText, object parms = null) => Query<T>(null, null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public List<T> Query<T>(DbTransaction transaction, string cmdText, object parms = null) => Query<T>(null, null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public List<T> Query<T>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => Query<T>(null, connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
 
 | 
			
		||||
@@ -14,6 +14,26 @@ namespace FreeSql.Internal.CommonProvider
 | 
			
		||||
{
 | 
			
		||||
    partial class AdoProvider
 | 
			
		||||
    {
 | 
			
		||||
        async public Task<bool> ExecuteConnectTestAsync()
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                switch (DataType)
 | 
			
		||||
                {
 | 
			
		||||
                    case DataType.Oracle:
 | 
			
		||||
                    case DataType.OdbcOracle:
 | 
			
		||||
                        await ExecuteNonQueryAsync(" SELECT 1 FROM dual");
 | 
			
		||||
                        return true;
 | 
			
		||||
                }
 | 
			
		||||
                await ExecuteNonQueryAsync(" SELECT 1");
 | 
			
		||||
                return true;
 | 
			
		||||
            }
 | 
			
		||||
            catch
 | 
			
		||||
            {
 | 
			
		||||
                return false;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public Task<List<T>> QueryAsync<T>(string cmdText, object parms = null) => QueryAsync<T>(null, null, null, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<List<T>> QueryAsync<T>(DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T>(null, null, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
        public Task<List<T>> QueryAsync<T>(DbConnection connection, DbTransaction transaction, string cmdText, object parms = null) => QueryAsync<T>(null, connection, transaction, CommandType.Text, cmdText, GetDbParamtersByObject(cmdText, parms));
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user