|
|
@@ -0,0 +1,152 @@ |
|
|
|
using CnasSynchronousCommon; |
|
|
|
using CnasSynchronusDAL; |
|
|
|
using CnasSynchrousModel; |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Data; |
|
|
|
using System.Data.SqlClient; |
|
|
|
using System.Linq; |
|
|
|
using System.Text; |
|
|
|
using System.Threading.Tasks; |
|
|
|
|
|
|
|
namespace CNAS_DBSync |
|
|
|
{ |
|
|
|
public class SelectTableType |
|
|
|
{ |
|
|
|
private static string connectionStr = ""; |
|
|
|
public static DataTable MySqlsec(string strTableName) |
|
|
|
{ |
|
|
|
MySQLDAL mysql = new MySQLDAL(); |
|
|
|
DataTable tb = mysql.GetTableTypeAndLenth(strTableName); |
|
|
|
return tb; |
|
|
|
} |
|
|
|
|
|
|
|
public static DataTable Sqlserversec(string strTableName, SyncInstrumentItemInfo t) |
|
|
|
{ |
|
|
|
|
|
|
|
DataTable dt = new DataTable(); |
|
|
|
try |
|
|
|
{ |
|
|
|
if (t.SyncInstrumentDSInfo.Host != "") |
|
|
|
connectionStr = $"Data Source = {t.SyncInstrumentDSInfo.Host}; Initial Catalog = {t.SyncInstrumentDSInfo.ServerName}; User Id = {t.SyncInstrumentDSInfo.UserId}; Password = {t.SyncInstrumentDSInfo.UserPwd};"; |
|
|
|
|
|
|
|
string sql = string.Format(@"SELECT |
|
|
|
c.name AS ColumnName, |
|
|
|
t.name AS DataType, |
|
|
|
c.max_length AS MaxLength, |
|
|
|
c.is_nullable AS IsNullable, |
|
|
|
c.default_object_id AS DefaultObjectId, |
|
|
|
ep.value AS remark |
|
|
|
FROM |
|
|
|
sys.columns c |
|
|
|
JOIN |
|
|
|
sys.types t ON c.user_type_id = t.user_type_id |
|
|
|
LEFT JOIN |
|
|
|
sys.extended_properties ep |
|
|
|
ON |
|
|
|
c.object_id = ep.major_id |
|
|
|
AND c.column_id = ep.minor_id |
|
|
|
AND ep.name = 'MS_Description' -- 备注的属性名称 |
|
|
|
WHERE |
|
|
|
c.object_id = OBJECT_ID('{0}'); ", strTableName); //查询字符串 |
|
|
|
dt = GetDataTable(sql, new SqlParameter[] { }); |
|
|
|
|
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
//发生异常,写入日志 |
|
|
|
AppLog.Error(ex.Message); |
|
|
|
} |
|
|
|
return dt; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// 查询操作 |
|
|
|
/// </summary> |
|
|
|
/// <param name="sql"></param> |
|
|
|
/// <returns></returns> |
|
|
|
public static DataTable GetDataTable(string sql, params SqlParameter[] sp) |
|
|
|
{ |
|
|
|
using (SqlConnection conn = new SqlConnection(connectionStr)) |
|
|
|
{ |
|
|
|
conn.Open(); |
|
|
|
using (SqlDataAdapter sda = new SqlDataAdapter(sql, conn)) |
|
|
|
{ |
|
|
|
sda.SelectCommand.Parameters.AddRange(sp); |
|
|
|
DataTable dt = new DataTable(); |
|
|
|
sda.Fill(dt); |
|
|
|
return dt; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static DataTable PostgreSql(string strTableName) |
|
|
|
{ |
|
|
|
|
|
|
|
DataTable dt = new DataTable(); |
|
|
|
string strSql = string.Format(@"SELECT |
|
|
|
a.attname as ColumnName, |
|
|
|
format_type(a.atttypid, a.atttypmod) as DataType, |
|
|
|
a.attnotnull as 非空, |
|
|
|
col_description(a.attrelid, a.attnum) as remark |
|
|
|
FROM |
|
|
|
pg_class as c, pg_attribute as a |
|
|
|
where |
|
|
|
a.attrelid = c.oid |
|
|
|
and |
|
|
|
a.attnum > 0 |
|
|
|
and |
|
|
|
c.relname = '{0}'; ", strTableName); |
|
|
|
try |
|
|
|
{ |
|
|
|
dt = PostgreSQLHelper.ExecuteDataSet(strSql).Tables[0]; |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
AppLog.Error(ex.Message); |
|
|
|
} |
|
|
|
return dt; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public static DataTable DmSql(string strTableName) |
|
|
|
{ |
|
|
|
|
|
|
|
DataTable dt = new DataTable(); |
|
|
|
string strSql = string.Format(@"SELECT |
|
|
|
a.COLUMN_NAME AS ColumnName, |
|
|
|
b.COMMENTS AS remark, |
|
|
|
a.DATA_TYPE || CASE |
|
|
|
WHEN a.DATA_TYPE IN('VARCHAR', 'CHAR') THEN '(' || a.DATA_LENGTH || ')' |
|
|
|
WHEN a.DATA_TYPE IN('DECIMAL', 'NUMERIC') THEN '(' || a.DATA_PRECISION || ',' || a.DATA_SCALE || ')' |
|
|
|
ELSE '' |
|
|
|
END AS DataType |
|
|
|
FROM |
|
|
|
ALL_TAB_COLUMNS a |
|
|
|
LEFT JOIN |
|
|
|
ALL_COL_COMMENTS b |
|
|
|
ON a.OWNER = b.OWNER |
|
|
|
AND a.TABLE_NAME = b.TABLE_NAME |
|
|
|
AND a.COLUMN_NAME = b.COLUMN_NAME |
|
|
|
WHERE |
|
|
|
a.TABLE_NAME = '{0}' |
|
|
|
|
|
|
|
ORDER BY |
|
|
|
a.COLUMN_ID;", strTableName); |
|
|
|
try |
|
|
|
{ |
|
|
|
dt = DamengHelper.ExecuteDataSet(strSql).Tables[0]; |
|
|
|
} |
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
AppLog.Error(ex.Message); |
|
|
|
} |
|
|
|
return dt; |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |