- 增加 IAdo.ExecuteConnectTest 快速判断连接是否可用 #113;

This commit is contained in:
28810
2020-08-24 12:39:22 +08:00
parent d266446062
commit d951b475d9
21 changed files with 164 additions and 0 deletions

View File

@ -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));

View File

@ -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));