public DataTable Query(IQuery query) { try { string sql = _emit.Query(query); _log.Debug(sql); return(_exe.ExecuteQuery(sql)); } catch (Exception ex) { throw ex.CreateWrapException <ORMException>(); } }
public IDatabaseMeta ReadMetaInfo() { AbstractDatabaseMeta meta = new DatabaseMeta(new TypeMap()); string sqlTable = "SELECT * FROM SysObjects WHERE xtype='u'"; DataTable dtTable = _exe.ExecuteQuery(sqlTable); foreach (DataRow dr in dtTable.Rows) { string name = (string)dr["NAME"]; meta.AddTable(name); } string sqlColumn = "SELECT * FROM INFORMATION_SCHEMA.COLUMNS"; DataTable dtColumn = _exe.ExecuteQuery(sqlColumn); string sqlPK = "SELECT u.TABLE_NAME,u.COLUMN_NAME FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE u " + "INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS t ON t.CONSTRAINT_NAME = u.CONSTRAINT_NAME " + "WHERE t.CONSTRAINT_TYPE = 'PRIMARY KEY'"; DataTable dtPK = _exe.ExecuteQuery(sqlPK); foreach (DataRow dr in dtColumn.Rows) { string tblName = (string)dr["table_name"]; string colName = (string)dr["column_name"]; bool nullable = (string)dr["is_nullable"] == "YES"; string dbType = (string)dr["data_type"]; bool isPK = false; foreach (DataRow row in dtPK.Rows) { if ((string)row["column_name"] == colName && (string)row["table_name"] == tblName) { isPK = true; break; } } meta.AddColumn(tblName, colName, dbType, nullable, isPK, 0);//Extend: length } meta.Build(); return(meta); }
public IDatabaseMeta ReadMetaInfo() { AbstractDatabaseMeta meta = new DatabaseMeta(new TypeMap()); var b = new MySqlConnectionStringBuilder(_exe.Connection.ConnectionString); var dtTable = _exe.ExecuteQuery(string.Format("SELECT * FROM information_schema.tables WHERE table_schema = '{0}'", b.Database)); foreach (DataRow dr in dtTable.Rows) { string name = (string)dr["TABLE_NAME"]; meta.AddTable(name); } DataTable dtColumn = _exe.ExecuteQuery(string.Format("SELECT * FROM information_schema.columns WHERE table_schema = '{0}'", b.Database)); string sqlPK = "SELECT * FROM information_schema.columns WHERE table_schema = '{0}' AND column_key = 'PRI'"; DataTable dtPK = _exe.ExecuteQuery(string.Format(sqlPK, b.Database)); foreach (DataRow dr in dtColumn.Rows) { string tblName = (string)dr["TABLE_NAME"]; string colName = (string)dr["COLUMN_NAME"]; bool nullable = (string)dr["IS_NULLABLE"] != "N"; string dbType = (string)dr["DATA_TYPE"]; bool isPK = false; foreach (DataRow row in dtPK.Rows) { if ((string)row["COLUMN_NAME"] == colName) { isPK = true; break; } } meta.AddColumn(tblName, colName, dbType, nullable, isPK, 0);//Extend: length } meta.Build(); return(meta); }
public IDatabaseMeta ReadMetaInfo() { AbstractDatabaseMeta meta = new DatabaseMeta(new TypeMap()); var b = new OracleConnectionStringBuilder(_exe.Connection.ConnectionString); var dtTable = _exe.ExecuteQuery(string.Format("SELECT * FROM ALL_TABLES WHERE OWNER = '{0}'", b.UserID.ToUpper())); foreach (DataRow dr in dtTable.Rows) { string name = (string)dr["TABLE_NAME"]; meta.AddTable(name); } DataTable dtColumn = _exe.ExecuteQuery(string.Format("SELECT * FROM ALL_TAB_COLUMNS WHERE OWNER = '{0}'", b.UserID.ToUpper())); string sqlPK = "SELECT * FROM user_cons_columns WHERE constraint_name IN (SELECT constraint_name FROM user_constraints WHERE Constraint_type='P') AND owner='{0}'"; DataTable dtPK = _exe.ExecuteQuery(string.Format(sqlPK, b.UserID.ToUpper())); foreach (DataRow dr in dtColumn.Rows) { string tblName = (string)dr["TABLE_NAME"]; string colName = (string)dr["COLUMN_NAME"]; bool nullable = (string)dr["NULLABLE"] != "N"; string dbType = (string)dr["DATA_TYPE"]; bool isPK = false; foreach (DataRow row in dtPK.Rows) { if ((string)row["COLUMN_NAME"] == colName) { isPK = true; break; } } meta.AddColumn(tblName, colName, dbType, isPK, nullable, 0);//Extend: length } meta.Build(); return(meta); }
public T FindByPK <T>(T pk) { DataTable dt = null; try { string sql = _emit.FindByPK(pk); _log.Debug(sql); dt = _exe.ExecuteQuery(sql); } catch (Exception ex) { throw ex.CreateWrapException <ORMException>(); } Assertion.IsNotNull(dt, "Data table should be filled already."); switch (dt.Rows.Count) { case 0: return(default(T)); case 1: try { return(dt.Rows[0].MapToEntity <T>()); } catch (Exception ex) { throw ex.CreateWrapException <ORMException>(); } default: ORMExceptionHelper.ThrowFindByPKResultNotUnique(typeof(T)); break; } return(default(T)); }
public DataTable ExecuteQuery(string sql) { return(_exe.ExecuteQuery(sql)); }