public virtual void FillDataTableWithTopX(DatabaseOperationArgs args, DiscoveredTable table, int topX, DataTable dt) { string sql = GetTopXSqlForTable(table, topX); using (var con = args.GetManagedConnection(table)) { using (var cmd = table.Database.Server.GetCommand(sql, con)) using (var da = table.Database.Server.GetDataAdapter(cmd)) args.Fill(da, cmd, dt); } }
public override void FillDataTableWithTopX(DatabaseOperationArgs args, DiscoveredTable table, int topX, DataTable dt) { using (var con = args.GetManagedConnection(table)) { ((OracleConnection)con.Connection).PurgeStatementCache(); var cols = table.DiscoverColumns(); //apparently * doesn't fly with Oracle DataAdapter string sql = "SELECT " + string.Join(",", cols.Select(c => c.GetFullyQualifiedName()).ToArray()) + " FROM " + table.GetFullyQualifiedName() + " OFFSET 0 ROWS FETCH NEXT " + topX + " ROWS ONLY"; using (var cmd = table.Database.Server.GetCommand(sql, con)) using (var da = table.Database.Server.GetDataAdapter(cmd)) args.Fill(da, cmd, dt); } }