예제 #1
0
        public void Test001()
        {
            string nativeSql = @"SELECT DISTINCT
                      employee.FirstName
                    FROM
                      employee
                    WHERE
                      employee.Title = 'IT Staff'";

            var p = sqlCommand.CreateParameter();

            p.ParameterName = "p10";
            p.DbType        = DbType.String;
            p.Value         = "IT Staff";
            sqlCommand.Parameters.Add(p);

            SqlTableRef employees = SqlDml.TableRef(schema.Tables["employee"]);
            SqlSelect   select    = SqlDml.Select(employees);

            select.Distinct = true;
            select.Columns.AddRange(employees["FirstName"]);
            select.Where = employees["Title"] == SqlDml.ParameterRef(p.ParameterName);

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }
예제 #2
0
        private void JoinViaIn(SqlStatement statement, SqlSelect @select)
        {
            SqlTableRef table = GetStatementTable(statement);

            SqlExpression where = GetStatementWhere(statement);
            JoinedTableRef      = table;
            PrimaryIndexMapping indexMapping = PrimaryIndexes[0];
            var columns = new List <ColumnInfo>();

            foreach (ColumnInfo columnInfo in indexMapping.PrimaryIndex.KeyColumns.Keys)
            {
                SqlSelect s = select.ShallowClone();
                foreach (ColumnInfo column in columns)
                {
                    SqlBinary ex = SqlDml.Equals(SqlDml.TableColumn(s.From, column.Name), SqlDml.TableColumn(table, column.Name));
                    s.Where = s.Where.IsNullReference() ? ex : SqlDml.And(s.Where, ex);
                }
                s.Columns.Clear();
                s.Columns.Add(SqlDml.TableColumn(s.From, columnInfo.Name));
                SqlBinary @in = SqlDml.In(SqlDml.TableColumn(table, columnInfo.Name), s);
                @where = @where.IsNullReference() ? @in : SqlDml.And(@where, @in);
                columns.Add(columnInfo);
            }
            SetStatementWhere(statement, where);
        }
예제 #3
0
        public void Test008()
        {
            string nativeSql = @"SELECT 
                                  t.TrackId,
                                  t.[Name],
                                  a.[Title]
                                FROM
                                  Track t
                                  INNER JOIN Album a ON (t.AlbumId = a.AlbumId)
                                ORDER BY
                                  t.TrackId";

            SqlTableRef track = SqlDml.TableRef(schema.Tables["Track"], "t");
            SqlTableRef album = SqlDml.TableRef(schema.Tables["Album"], "a");

            SqlSelect select = SqlDml.Select(track.InnerJoin(album, track["AlbumId"] == album["AlbumId"]));

            select.Columns.Add(track["TrackId"]);
            select.Columns.Add(track["Name"]);
            select.Columns.Add(album["Title"]);

            select.OrderBy.Add(track["TrackId"]);

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }
예제 #4
0
        public void SqlMatchReplacingTest()
        {
            SqlTableRef t  = SqlDml.TableRef(table1);
            SqlSelect   s1 = SqlDml.Select(t);

            s1.Columns.Add(t[0]);
            s1.Columns.Add(SqlDml.Null, "ID");
            SqlSelect s2 = SqlDml.Select(t);

            s2.Columns.Add(t[0]);
            s2.Columns.Add(t[1]);
            SqlMatch m          = SqlDml.Match(SqlDml.Row(1, "name"), s1, false, SqlMatchType.Partial);
            SqlMatch mReplacing = SqlDml.Match(SqlDml.Row(1, "name"), s2, true, SqlMatchType.None);

            m.ReplaceWith(mReplacing);

            bool passed = false;

            try {
                m.ReplaceWith(1);
            }
            catch {
                passed = true;
            }

            Assert.IsTrue(passed);
            Assert.AreNotEqual(m, mReplacing);
            Assert.AreEqual(m.NodeType, mReplacing.NodeType);
            Assert.AreEqual(m.MatchType, mReplacing.MatchType);
            Assert.AreEqual(m.Unique, mReplacing.Unique);
            Assert.AreEqual(m.Value, mReplacing.Value);
            Assert.AreEqual(m.SubQuery, mReplacing.SubQuery);
        }
        public void Test008()
        {
            string nativeSql = @"SELECT 
                                      t.city_id,
                                      t.city,
                                      c.country
                                    FROM
                                      city t
                                      INNER JOIN country c ON (t.country_id = c.country_id)
                                    ORDER BY
                                      t.city_id";

            SqlTableRef city    = SqlDml.TableRef(schema.Tables["city"], "t");
            SqlTableRef country = SqlDml.TableRef(schema.Tables["country"], "c");

            SqlSelect select = SqlDml.Select(city.InnerJoin(country, city["country_id"] == country["country_id"]));

            select.Columns.Add(city["city_id"]);
            select.Columns.Add(city["city"]);
            select.Columns.Add(country["country"]);

            select.OrderBy.Add(city["city_id"]);

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }
예제 #6
0
        public void SqlWhileCloneTest()
        {
            SqlVariable i = SqlDml.Variable("i", SqlType.Int32);
            SqlWhile    w = SqlDml.While(i <= 1000);
            SqlBatch    b = SqlDml.Batch();

            b.Add(SqlDml.Assign(i, i + 1));
            SqlTableRef t = SqlDml.TableRef(table1);
            SqlSelect   s = SqlDml.Select(t);

            s.Columns.Add(t["Name"]);
            s.Where = t[0] == i;
            SqlIf f = SqlDml.If(SqlDml.SubQuery(s) == "Unkown", SqlDml.Break, SqlDml.Continue);

            b.Add(f);
            w.Statement = b;

            SqlWhile wClone = (SqlWhile)w.Clone();

            Assert.AreNotEqual(w, wClone);
            Assert.AreEqual(w.NodeType, wClone.NodeType);
            Assert.AreNotEqual(w.Condition, wClone.Condition);
            Assert.AreEqual(w.Condition.NodeType, wClone.Condition.NodeType);
            Assert.AreNotEqual(w.Statement, wClone.Statement);
            Assert.AreEqual(w.Statement.NodeType, wClone.Statement.NodeType);
        }
예제 #7
0
        public void Test000()
        {
            string nativeSql = @"SELECT 
                          employee.EmployeeID,
                          employee.FirstName,
                          employee.LastName,
                          employee.BirthDate
                        FROM
                          employee
                        WHERE
                          employee.FirstName = 'Robert'
                        ORDER BY
                          employee.LastName";

            var p = sqlCommand.CreateParameter();

            p.ParameterName = "p1";
            p.DbType        = DbType.String;
            p.Value         = "Robert";
            sqlCommand.Parameters.Add(p);

            SqlTableRef employees = SqlDml.TableRef(schema.Tables["employee"]);
            SqlSelect   select    = SqlDml.Select(employees);

            select.Columns.AddRange(employees["EmployeeId"], employees["FirstName"], employees["LastName"], employees["BirthDate"]);
            select.Where = employees["FirstName"] == SqlDml.ParameterRef(p.ParameterName);
            select.OrderBy.Add(employees["LastName"]);

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }
        public void Test027()
        {
            string nativeSql = @"SELECT 
                                  c.customer_id,
                                  c.first_name
                                FROM
                                  customer c
                                WHERE EXISTS
                                    (SELECT * FROM payment p WHERE p.amount > 11.00 AND p.customer_id = c.customer_id )";

            SqlTableRef customer = SqlDml.TableRef(schema.Tables["customer"], "c");
            SqlTableRef payment  = SqlDml.TableRef(schema.Tables["payment"], "p");

            SqlSelect innerSelect = SqlDml.Select(payment);
            SqlSelect select      = SqlDml.Select(customer);

            innerSelect.Columns.Add(SqlDml.Asterisk);
            innerSelect.Where = payment["amount"] > 11.00 && payment["customer_id"] == customer["customer_id"];

            select.Columns.Add(customer["customer_id"]);
            select.Columns.Add(customer["first_name"]);
            select.Where = SqlDml.Exists(innerSelect);

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }
예제 #9
0
        public void SqlUpdateCloneTest()
        {
            SqlTableRef t = SqlDml.TableRef(table1);
            SqlUpdate   u = SqlDml.Update(t);

            u.Values[t[0]] = 1;
            u.Values[t[1]] = "Anonym";
            u.Where        = t.Columns["ID"] == 1;
            u.Hints.Add(SqlDml.FastFirstRowsHint(10));
            SqlUpdate uClone = (SqlUpdate)u.Clone();

            Assert.AreNotEqual(u, uClone);
            Assert.AreNotEqual(u.Update, uClone.Update);
            Assert.AreEqual(u.NodeType, uClone.NodeType);
            Assert.AreEqual(u.Values.Count, uClone.Values.Count);
            foreach (KeyValuePair <ISqlLValue, SqlExpression> p in u.Values)
            {
                Assert.IsFalse(uClone.Values.ContainsKey(p.Key));
                Assert.IsFalse(uClone.Values.ContainsValue(p.Value));
            }
            if (u.Where != null)
            {
                Assert.AreNotEqual(u.Where, uClone.Where);
                Assert.AreEqual(u.Where.NodeType, uClone.Where.NodeType);
            }
            else
            {
                Assert.AreEqual(uClone.Where, null);
            }
            Assert.AreEqual(u.Hints.Count, uClone.Hints.Count);
        }
        public void Test023()
        {
            string nativeSql = @"SELECT 
                                  f.film_id,
                                  f.title,
                                  f.description,
                                  f.length
                                FROM
                                  film f
                                WHERE
                                  (f.rating = 'PG' OR 
                                  f.rating = 'PG-13') AND 
                                  f.length < 100
                                ORDER BY
                                  f.film_id";

            SqlTableRef film   = SqlDml.TableRef(schema.Tables["film"], "f");
            SqlSelect   select = SqlDml.Select(film);

            select.Columns.AddRange(film["film_id"], film["title"], film["description"], film["length"]);
            select.Where = (film["rating"] == "PG" || film["rating"] == "PG-13") && film["length"] < 100;
            select.OrderBy.Add(film["film_id"]);

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }
        public void Test026()
        {
            string nativeSql = @"SELECT 
                                  p.customer_id,
                                  p.amount
                                FROM
                                  payment p
                                WHERE
                                  p.amount = (SELECT MAX(amount) AS LowestPayment FROM payment)";

            SqlTableRef payment1 = SqlDml.TableRef(schema.Tables["payment"], "p1");
            SqlTableRef payment2 = SqlDml.TableRef(schema.Tables["payment"], "p2");

            SqlSelect innerSelect = SqlDml.Select(payment2);

            innerSelect.Columns.Add(SqlDml.Max(payment2["amount"]));

            SqlSelect select = SqlDml.Select(payment1);

            select.Columns.Add(payment1["customer_id"]);
            select.Columns.Add(payment1["amount"]);

            select.Where = SqlDml.Equals(payment1["amount"], innerSelect);

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }
        public void Test018()
        {
            string nativeSql = @"SELECT 
                                  c.customer_id,
                                  c.first_name,
                                  c.last_name,
                                  SUM(p.amount) AS Total
                                FROM
                                  customer c
                                  INNER JOIN payment p ON (c.customer_id = p.customer_id)
                                GROUP BY
                                  c.customer_id,
                                  c.first_name,
                                  c.last_name
                                HAVING SUM(p.amount) > 140";

            SqlTableRef customer = SqlDml.TableRef(schema.Tables["customer"], "c");
            SqlTableRef payment  = SqlDml.TableRef(schema.Tables["payment"], "p");

            SqlSelect select = SqlDml.Select(customer.InnerJoin(payment, customer["customer_id"] == payment["customer_id"]));

            select.Columns.Add(customer["customer_id"]);
            select.Columns.Add(customer["first_name"]);
            select.Columns.Add(customer["last_name"]);
            select.Columns.Add(SqlDml.Sum(payment["amount"]), "Total");

            select.GroupBy.Add(customer["customer_id"]);
            select.GroupBy.Add(customer["first_name"]);
            select.GroupBy.Add(customer["last_name"]);

            select.Having = SqlDml.Sum(payment["amount"]) > 140;

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }
        public void Test019()
        {
            string nativeSql = @"SELECT 
                                    c.customer_id,
                                    c.first_name,
                                    c.last_name
                                FROM
                                    customer c
                                WHERE c.customer_id IN (SELECT r.customer_id FROM rental r WHERE r.inventory_id = 239)
                                GROUP BY c.customer_id,
                                    c.first_name,
                                    c.last_name";

            SqlTableRef customer = SqlDml.TableRef(schema.Tables["customer"], "c");
            SqlTableRef rental   = SqlDml.TableRef(schema.Tables["rental"], "r");

            SqlSelect innerSelect = SqlDml.Select(rental);

            innerSelect.Columns.Add(rental["customer_id"]);
            innerSelect.Where = rental["inventory_id"] == 239;

            SqlSelect select = SqlDml.Select(customer);

            select.Columns.Add(customer["customer_id"]);
            select.Columns.Add(customer["first_name"]);
            select.Columns.Add(customer["last_name"]);

            select.Where = SqlDml.In(customer["customer_id"], innerSelect);

            select.GroupBy.Add(customer["customer_id"]);
            select.GroupBy.Add(customer["first_name"]);
            select.GroupBy.Add(customer["last_name"]);

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }
        public void Test014()
        {
            string nativeSql = @"SELECT 
                                  r.inventory_id,
                                  r.return_date, r.rental_date,
                                  DATEDIFF(r.return_date, r.rental_date) Days
                                FROM
                                  rental r
                                WHERE
                                  r.return_date IS NOT NULL
                                ORDER BY
                                  r.inventory_id";

            SqlTableRef rental = SqlDml.TableRef(schema.Tables["rental"], "r");
            SqlSelect   select = SqlDml.Select(rental);

            select.Columns.AddRange(rental["inventory_id"], rental["return_date"], rental["rental_date"]);
            select.Columns.Add(
                SqlDml.FunctionCall("DATEDIFF", rental["return_date"], rental["rental_date"]),
                "Days"
                );
            select.Where = SqlDml.IsNotNull(rental["return_date"]);
            select.OrderBy.Add(rental["inventory_id"]);

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }
        public void Test012()
        {
            string nativeSql = @"SELECT 
                                  CASE p.staff_id
                                  WHEN 1 THEN 'STAFF_1'
                                  WHEN 2 THEN 'STAFF_2'
                                  ELSE 'STAFF_OTHER'
                                  END AS Staff,
                                  SUM(p.amount) AS Total
                                FROM
                                  payment p
                                GROUP BY
                                  p.staff_id";

            SqlTableRef payment = SqlDml.TableRef(schema.Tables["payment"], "p");

            SqlSelect select       = SqlDml.Select(payment);
            SqlCase   totalPayment = SqlDml.Case(payment["staff_id"]);

            totalPayment[1]   = SqlDml.Literal("STAFF_1");
            totalPayment[2]   = SqlDml.Literal("STAFF_2");
            totalPayment.Else = SqlDml.Literal("STAFF_OTHER");
            select.Columns.Add(totalPayment, "Staff");

            select.Columns.Add(SqlDml.Sum(payment["amount"]), "Total");
            select.GroupBy.AddRange(payment["staff_id"]);

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }
        public void Test011()
        {
            string nativeSql = @"SELECT 
                                  c.customer_id,
                                  c.first_name,
                                  c.last_name,
                                  SUM(p.amount) AS Total
                                FROM
                                  customer c
                                  INNER JOIN payment p ON (c.customer_id = p.customer_id)
                                GROUP BY
                                  c.customer_id,
                                  c.first_name,
                                  c.last_name
                                ORDER BY c.customer_id";

            SqlTableRef customer = SqlDml.TableRef(schema.Tables["customer"], "c");

            SqlSelect select = SqlDml.Select(customer);

            select.Columns.AddRange(customer["customer_id"], customer["first_name"], customer["last_name"]);
            SqlTableRef payment      = SqlDml.TableRef(schema.Tables["payment"], "p");
            SqlSelect   sumOfPayment = SqlDml.Select(payment);

            sumOfPayment.Columns.Add(SqlDml.Sum(payment["amount"]));
            sumOfPayment.Where = customer["customer_id"] == payment["customer_id"];
            select.Columns.Add(sumOfPayment, "Total");

            select.OrderBy.Add(customer["customer_id"]);

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }
예제 #17
0
        public void Test012()
        {
            string nativeSql = @"SELECT 
                                  CASE il.TrackId
                                  WHEN 1 THEN 'STAFF_1'
                                  WHEN 2 THEN 'STAFF_2'
                                  ELSE 'STAFF_OTHER'
                                  END AS shippers,
                                  SUM(il.UnitPrice) AS TotalUnits
                           FROM [invoiceline] il
                           GROUP BY il.TrackId";

            SqlTableRef invoiceLine = SqlDml.TableRef(schema.Tables["invoiceline"], "il");

            SqlSelect select       = SqlDml.Select(invoiceLine);
            SqlCase   totalPayment = SqlDml.Case(invoiceLine["TrackId"]);

            totalPayment[1]   = SqlDml.Literal("STAFF_1");
            totalPayment[2]   = SqlDml.Literal("STAFF_2");
            totalPayment.Else = SqlDml.Literal("STAFF_OTHER");
            select.Columns.Add(totalPayment, "shippers");

            select.Columns.Add(SqlDml.Sum(invoiceLine["UnitPrice"]), "TotalUnits");
            select.GroupBy.AddRange(invoiceLine["TrackId"]);

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }
        public void Test001()
        {
            string nativeSql =
                @"SELECT DISTINCT
                      actor.first_name
                    FROM
                      actor
                    WHERE
                      actor.first_name = 'ADAM'";

            var p = sqlCommand.CreateParameter();

            p.ParameterName = "p10";
            p.DbType        = DbType.String;
            p.Value         = "ADAM";
            sqlCommand.Parameters.Add(p);

            SqlTableRef actor  = SqlDml.TableRef(schema.Tables["actor"]);
            SqlSelect   select = SqlDml.Select(actor);

            select.Distinct = true;
            select.Columns.AddRange(actor["first_name"]);
            select.Where = actor["first_name"] == SqlDml.ParameterRef(p.ParameterName);

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }
        public void Test000()
        {
            string nativeSql =
                @"SELECT 
                          actor.actor_id,
                          actor.first_name,
                          actor.last_name,
                          actor.last_update
                        FROM
                          actor
                        WHERE
                          actor.first_name = 'ADAM'
                        ORDER BY
                          actor.last_name";

            var p = sqlCommand.CreateParameter();

            p.ParameterName = "p1";
            p.DbType        = DbType.String;
            p.Value         = "ADAM";
            sqlCommand.Parameters.Add(p);

            SqlTableRef actor  = SqlDml.TableRef(schema.Tables["actor"]);
            SqlSelect   select = SqlDml.Select(actor);

            select.Columns.AddRange(actor["actor_id"], actor["first_name"], actor["last_name"], actor["last_update"]);
            select.Where = actor["first_name"] == SqlDml.ParameterRef(p.ParameterName);
            select.OrderBy.Add(actor["last_name"]);

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }
예제 #20
0
        private SqlInsert CreateInsert(SqlTableRef tableRef)
        {
            var insert = SqlDml.Insert(tableRef);

            insert.Values.Add(tableRef["id"], nextId++);
            return(insert);
        }
예제 #21
0
        public void Test026()
        {
            string nativeSql = @"SELECT 
                                  p.CustomerId,
                                  p.Commission
                           FROM
                                  invoice p
                           WHERE
                                  p.Commission = (SELECT MIN(Commission) AS LowestCommission FROM invoice)";

            SqlTableRef invoice1 = SqlDml.TableRef(schema.Tables["invoice"], "p1");
            SqlTableRef invoice2 = SqlDml.TableRef(schema.Tables["invoice"], "p2");

            SqlSelect innerSelect = SqlDml.Select(invoice2);

            innerSelect.Columns.Add(SqlDml.Min(invoice2["Commission"]));

            SqlSelect select = SqlDml.Select(invoice1);

            select.Columns.Add(invoice1["CustomerId"]);
            select.Columns.Add(invoice1["Commission"]);

            select.Where = SqlDml.Equals(invoice1["Commission"], innerSelect);

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }
예제 #22
0
        public void Test027()
        {
            string nativeSql = @"SELECT 
                                  c.CustomerId,
                                  c.CompanyName
                          FROM
                                  customer c
                          WHERE EXISTS
                                    (SELECT * FROM invoice i WHERE i.Commission < 1.00 AND i.CustomerId = c.CustomerId )";

            SqlTableRef customer = SqlDml.TableRef(schema.Tables["customer"], "c");
            SqlTableRef invoice  = SqlDml.TableRef(schema.Tables["invoice"], "i");

            SqlSelect innerSelect = SqlDml.Select(invoice);
            SqlSelect select      = SqlDml.Select(customer);

            innerSelect.Columns.Add(SqlDml.Asterisk);
            innerSelect.Where = invoice["Commission"] < 11.00 && invoice["CustomerId"] == customer["CustomerId"];

            select.Columns.Add(customer["CustomerId"]);
            select.Columns.Add(customer["CompanyName"]);
            select.Where = SqlDml.Exists(innerSelect);

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }
예제 #23
0
        public void Test019()
        {
            string nativeSql = @"SELECT 
                                  c.CustomerId,
                                  c.CompanyName,
                                  c.LastName
                           FROM
                                customer c
                           WHERE c.CustomerId IN (SELECT r.CustomerId FROM invoice r WHERE r.DesignatedEmployeeId = 8)
                           GROUP BY c.CustomerID,
                                    c.CompanyName,
                                    c.LastName";

            SqlTableRef customer = SqlDml.TableRef(schema.Tables["customer"], "c");
            SqlTableRef invoice  = SqlDml.TableRef(schema.Tables["invoice"], "r");

            SqlSelect innerSelect = SqlDml.Select(invoice);

            innerSelect.Columns.Add(invoice["CustomerId"]);
            innerSelect.Where = invoice["DesignatedEmployeeId"] == 8;

            SqlSelect select = SqlDml.Select(customer);

            select.Columns.Add(customer["CustomerId"]);
            select.Columns.Add(customer["CompanyName"]);
            select.Columns.Add(customer["LastName"]);

            select.Where = SqlDml.In(customer["CustomerId"], innerSelect);

            select.GroupBy.Add(customer["CustomerID"]);
            select.GroupBy.Add(customer["CompanyName"]);
            select.GroupBy.Add(customer["LastName"]);

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }
예제 #24
0
        public void Test018()
        {
            string nativeSql = @"SELECT 
                                  c.CustomerId,
                                  c.CompanyName,
                                  c.LastName,
                                  SUM(i.commission) AS Total
                           FROM
                                customer c
                           INNER JOIN invoice i ON (c.CustomerID = i.CustomerID)
                           GROUP BY
                                  c.CustomerId,
                                  c.CompanyName,
                                  c.LastName
                           HAVING SUM(i.commission) > 140";

            SqlTableRef customer = SqlDml.TableRef(schema.Tables["customer"], "c");
            SqlTableRef invoice  = SqlDml.TableRef(schema.Tables["invoice"], "i");
            SqlSelect   select   = SqlDml.Select(customer.InnerJoin(invoice, customer["CustomerId"] == invoice["CustomerId"]));

            select.Columns.AddRange(customer["CustomerID"], customer["CompanyName"], customer["LastName"]);
            select.Columns.Add(SqlDml.Sum(invoice["Commission"]), "Total");

            select.GroupBy.AddRange(customer["CustomerID"], customer["CompanyName"], customer["LastName"]);

            select.Having = SqlDml.Sum(invoice["Commission"]) > 140;

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }
예제 #25
0
 public virtual void Visit(SqlTableRef node)
 {
     VisitInternal(node.Asterisk);
     foreach (SqlTableColumn column in node.Columns)
     {
         VisitInternal(column);
     }
 }
예제 #26
0
        public void Test017_1()
        {
            SqlTableRef customer = SqlDml.TableRef(schema.Tables["customer"], "c");

            SqlSelect select = SqlDml.Select(customer);

            select.Columns.Add(customer["CustomerId"]);
            select.Columns.Add(SqlDml.RawConcat("Mr. ", customer["LastName"]), "FullName");
            Console.WriteLine(sqlDriver.Compile(select).GetCommandText());
        }
예제 #27
0
        public void Test014_3()
        {
            SqlTableRef invoice = SqlDml.TableRef(schema.Tables["invoice"], "r");
            SqlSelect   select  = SqlDml.Select(invoice);

            select.Columns.Add(SqlDml.DateTimeAddMonths(invoice["PaymentDate"], 1 + 1), "TimeToToday");
            select.Where = SqlDml.IsNotNull(invoice["PaymentDate"]);

            Console.WriteLine(sqlDriver.Compile(select).GetCommandText());
        }
예제 #28
0
        public void Test014_2()
        {
            SqlTableRef invoice = SqlDml.TableRef(schema.Tables["invoice"], "r");
            SqlSelect   select  = SqlDml.Select(invoice);

            select.Columns.Add(SqlDml.FunctionCall("DATE", invoice["PaymentDate"], SqlDml.Native(string.Format("'{0} MONTHS'", 1 + 1))), "TimeToToday");
            select.Where = SqlDml.IsNotNull(invoice["PaymentDate"]);

            Console.WriteLine(sqlDriver.Compile(select).GetCommandText());
        }
예제 #29
0
        public void Test002()
        {
            string nativeSql = "SELECT * FROM [genre] a";

            SqlTableRef region = SqlDml.TableRef(Catalog.Schemas["main"].Tables["genre"]);
            SqlSelect   select = SqlDml.Select(region);

            select.Columns.Add(SqlDml.Asterisk);

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }
        public void Test002()
        {
            string nativeSql = "SELECT * FROM `city` `a`";

            SqlTableRef city   = SqlDml.TableRef(schema.Tables["city"]);
            SqlSelect   select = SqlDml.Select(city);

            select.Columns.Add(SqlDml.Asterisk);

            Assert.IsTrue(CompareExecuteDataReader(nativeSql, select));
        }