1 write to sql
System.Data.Linq (1)
SqlClient\Query\SqlMethodCallConverter.cs (1)
637this.sql = sql;
615 references to sql
System.Data.Linq (615)
SqlClient\Query\SqlMethodCallConverter.cs (615)
657return sql.ConvertTo(newType, uo.SqlType, expr); 695return sql.Case(tc.ClrType, tc.Discriminator, matches, values, tc.SourceExpression); 722return sql.FunctionCall(typeof(string), "REPLICATE", new SqlExpression[] { sox.Args[0], sox.Args[1] }, sox.SourceExpression); 734SqlExpression char2 = sql.FunctionCall(typeof(void), "NCHAR", new SqlExpression[1] { sql.ValueFromObject(2, false, source) }, source); 735SqlExpression char4 = sql.FunctionCall(typeof(void), "NCHAR", new SqlExpression[1] { sql.ValueFromObject(4, false, source) }, source); 736SqlExpression year = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char4, sox.Args[0] }, source); 737SqlExpression month = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char2, sox.Args[1] }, source); 738SqlExpression day = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char2, sox.Args[2] }, source); 741SqlExpression date = sql.Concat(month, sql.ValueFromObject("/", false, source), day, sql.ValueFromObject("/", false, source), year); 742return sql.FunctionCall(typeof(DateTime), "CONVERT", new SqlExpression[3] { datetime, date, sql.ValueFromObject(101, false, source) }, source); 749SqlExpression hour = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char2, sox.Args[3] }, source); 750SqlExpression minute = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char2, sox.Args[4] }, source); 751SqlExpression second = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char2, sox.Args[5] }, source); 752SqlExpression date = sql.Concat(year, sql.ValueFromObject("-", false, source), month, sql.ValueFromObject("-", false, source), day); 753SqlExpression time = sql.Concat(hour, sql.ValueFromObject(":", false, source), minute, sql.ValueFromObject(":", false, source), second); 754SqlExpression dateAndTime = sql.Concat(date, sql.ValueFromObject(' ', false, source), time); 756return sql.FunctionCall(typeof(DateTime), "CONVERT", new SqlExpression[3] { datetime, dateAndTime, sql.ValueFromObject(120, false, source) }, source); 761SqlExpression msRaw = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] {char4, 762sql.Add(sql.ValueFromObject(1000, false, source),sox.Args[6])}, source); 766SqlExpression len = sql.FunctionCall(typeof(int), "LEN", new SqlExpression[1] { msRaw }, source); 767SqlExpression startIndex = sql.Binary(SqlNodeType.Sub, len, sql.ValueFromObject(2, false, source)); 768ms = sql.FunctionCall(typeof(string), "SUBSTRING", new SqlExpression[3] { msRaw, startIndex, sql.ValueFromObject(3, false, source) }, source); 771ms = sql.FunctionCall(typeof(string), "RIGHT", new SqlExpression[2] { msRaw, sql.ValueFromObject(3, false, source) }, source); 773dateAndTime = sql.Concat(dateAndTime, sql.ValueFromObject('.', false, source), ms); 774return sql.FunctionCall(typeof(DateTime), "CONVERT", new SqlExpression[3] { datetime, dateAndTime, sql.ValueFromObject(121, false, source) }, source); 787return sql.FunctionCall(typeof(DateTimeOffset), "TODATETIMEOFFSET", 788new SqlExpression[2] { sox.Args[0], sql.ValueFromObject(0, false, source) }, 794return sql.FunctionCall(typeof(DateTimeOffset), "TODATETIMEOFFSET", 798sql.ConvertToInt(sql.ConvertToBigint(sql.Divide(sql.ConvertTimeToDouble(sox.Args[1]), TimeSpan.TicksPerMinute))) 808SqlExpression char2 = sql.FunctionCall(typeof(void), "NCHAR", new SqlExpression[1] { sql.ValueFromObject(2, false, source) }, source); 809SqlExpression char4 = sql.FunctionCall(typeof(void), "NCHAR", new SqlExpression[1] { sql.ValueFromObject(4, false, source) }, source); 810SqlExpression char5 = sql.FunctionCall(typeof(void), "NCHAR", new SqlExpression[1] { sql.ValueFromObject(5, false, source) }, source); 813SqlExpression yyRaw = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] {char5, 814sql.Add(sql.ValueFromObject(10000, false, source),sox.Args[0])}, source); 815SqlExpression year = sql.FunctionCall(typeof(string), "RIGHT", new SqlExpression[2] { yyRaw, sql.ValueFromObject(4, false, source) }, source); 817SqlExpression month = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char2, sox.Args[1] }, source); 818SqlExpression day = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char2, sox.Args[2] }, source); 820SqlExpression hour = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char2, sox.Args[3] }, source); 821SqlExpression minute = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char2, sox.Args[4] }, source); 822SqlExpression second = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] { char2, sox.Args[5] }, source); 823SqlExpression date = sql.Concat(year, sql.ValueFromObject("-", false, source), month, sql.ValueFromObject("-", false, source), day); 824SqlExpression time = sql.Concat(hour, sql.ValueFromObject(":", false, source), minute, sql.ValueFromObject(":", false, source), second); 832dateAndTime = sql.Concat(date, sql.ValueFromObject(' ', false, source), time); 833result = sql.FunctionCall(typeof(DateTimeOffset), "CONVERT", new SqlExpression[3] { datetimeoffset, dateAndTime, sql.ValueFromObject(120, false, source) }, source); 838SqlExpression msRaw = sql.FunctionCall(typeof(string), "CONVERT", new SqlExpression[2] {char4, 839sql.Add(sql.ValueFromObject(1000, false, source),sox.Args[6])}, source); 840SqlExpression ms = sql.FunctionCall(typeof(string), "RIGHT", new SqlExpression[2] { msRaw, sql.ValueFromObject(3, false, source) }, source); 841dateAndTime = sql.Concat(date, sql.ValueFromObject(' ', false, source), time, sql.ValueFromObject('.', false, source), ms); 842result = sql.FunctionCall(typeof(DateTimeOffset), "CONVERT", new SqlExpression[3] { datetimeoffset, dateAndTime, sql.ValueFromObject(121, false, source) }, source); 848return sql.FunctionCall(typeof(DateTimeOffset), "TODATETIMEOFFSET", 852sql.ConvertToInt(sql.ConvertToBigint(sql.Divide(sql.ConvertTimeToDouble(sox.Args[timeSpanIndex]), TimeSpan.TicksPerMinute))) 862return sql.ConvertTo(typeof(TimeSpan), sox.Args[0]); 866SqlExpression hours = sql.ConvertToBigint(sox.Args[0]); 867SqlExpression minutes = sql.ConvertToBigint(sox.Args[1]); 868SqlExpression seconds = sql.ConvertToBigint(sox.Args[2]); 869SqlExpression TicksFromHours = sql.Multiply(hours, TimeSpan.TicksPerHour); 870SqlExpression TicksFromMinutes = sql.Multiply(minutes, TimeSpan.TicksPerMinute); 871SqlExpression TicksFromSeconds = sql.Multiply(seconds, TimeSpan.TicksPerSecond); 872return sql.ConvertTo(typeof(TimeSpan), sql.Add(TicksFromHours, TicksFromMinutes, TicksFromSeconds)); 875SqlExpression days = sql.ConvertToBigint(sox.Args[0]); 876SqlExpression hours = sql.ConvertToBigint(sox.Args[1]); 877SqlExpression minutes = sql.ConvertToBigint(sox.Args[2]); 878SqlExpression seconds = sql.ConvertToBigint(sox.Args[3]); 879SqlExpression TicksFromDays = sql.Multiply(days, TimeSpan.TicksPerDay); 880SqlExpression TicksFromHours = sql.Multiply(hours, TimeSpan.TicksPerHour); 881SqlExpression TicksFromMinutes = sql.Multiply(minutes, TimeSpan.TicksPerMinute); 882SqlExpression TicksFromSeconds = sql.Multiply(seconds, TimeSpan.TicksPerSecond); 883SqlExpression totalTicks = sql.Add(TicksFromDays, TicksFromHours, TicksFromMinutes, TicksFromSeconds); 886return sql.ConvertTo(typeof(TimeSpan), totalTicks); 890SqlExpression milliseconds = sql.ConvertToBigint(sox.Args[4]); 891SqlExpression ticksFromMs = sql.Multiply(milliseconds, TimeSpan.TicksPerMillisecond); 892return sql.ConvertTo(typeof(TimeSpan), sql.Add(totalTicks, ticksFromMs)); 909returnValue = sql.ConvertTo(mc.ClrType, mc.Arguments[0]); 950return sql.Binary(SqlNodeType.EQ, mc.Object, mc.Arguments[0]); 959return sql.ConvertTo(typeof(string), expr); 1002return sql.Binary(SqlNodeType.Coalesce, mc.Object, 1003sql.ValueFromObject(Activator.CreateInstance(clrType), mc.SourceExpression)); 1006return sql.Binary(SqlNodeType.Coalesce, mc.Object, mc.Arguments[0]); 1020return sql.FunctionCall(typeof(int), "DATEDIFF", 1027return sql.Like(mc.Arguments[0], mc.Arguments[1], null, source); 1030return sql.Like(mc.Arguments[0], mc.Arguments[1], sql.ConvertTo(typeof(string), mc.Arguments[2]), source); 1034SqlExpression length = sql.DATALENGTH(mc.Arguments[0]); 1042SqlExpression lower = sql.Binary(SqlNodeType.LT, a, b); 1043SqlExpression equal = sql.Binary(SqlNodeType.EQ2V, a, b); 1044return sql.SearchedCase( 1046new SqlWhen(lower, sql.ValueFromObject(-1, false, source)), 1047new SqlWhen(equal, sql.ValueFromObject(0, false, source)), 1049sql.ValueFromObject(1, false, source), source 1065SqlExpression ns = this.sql.DATEPART("NANOSECOND", mc.Arguments[0]); 1066SqlExpression ss = this.sql.DATEPART("SECOND", mc.Arguments[0]); 1067SqlExpression mm = this.sql.DATEPART("MINUTE", mc.Arguments[0]); 1068SqlExpression hh = this.sql.DATEPART("HOUR", mc.Arguments[0]); 1069sqlTicks = sql.Add( 1070sql.Divide(ns, 100), 1071sql.Multiply( 1072sql.Add( 1073sql.Multiply(sql.ConvertToBigint(hh), 3600000), 1074sql.Multiply(sql.ConvertToBigint(mm), 60000), 1075sql.Multiply(sql.ConvertToBigint(ss), 1000) 1084returnValue = sql.DATEADD("MONTH", mc.Arguments[0], mc.Object); 1088returnValue = sql.DATEADD("YEAR", mc.Arguments[0], mc.Object); 1097SqlExpression ms = sql.Multiply(mc.Arguments[0], 1000); 1101SqlExpression ms = sql.Multiply(mc.Arguments[0], 60000); 1105SqlExpression ms = sql.Multiply(mc.Arguments[0], 3600000); 1109SqlExpression ms = sql.Multiply(mc.Arguments[0], 86400000); 1123SqlExpression ns = sql.DATEPART("NANOSECOND", mc.Arguments[0]); 1124SqlExpression ss = sql.DATEPART("SECOND", mc.Arguments[0]); 1125SqlExpression mi = sql.DATEPART("MINUTE", mc.Arguments[0]); 1126SqlExpression hh = sql.DATEPART("HOUR", mc.Arguments[0]); 1128SqlExpression ticks = sql.Add( 1129sql.Divide(ns, 100), 1130sql.Multiply( 1131sql.Add( 1132sql.Multiply(sql.ConvertToBigint(hh), 3600000), 1133sql.Multiply(sql.ConvertToBigint(mi), 60000), 1134sql.Multiply(sql.ConvertToBigint(ss), 1000) 1143returnValue = sql.DATETIMEOFFSETADD("MONTH", mc.Arguments[0], mc.Object); 1147returnValue = sql.DATETIMEOFFSETADD("YEAR", mc.Arguments[0], mc.Object); 1156SqlExpression ms = sql.Multiply(mc.Arguments[0], 1000); 1160SqlExpression ms = sql.Multiply(mc.Arguments[0], 60000); 1164SqlExpression ms = sql.Multiply(mc.Arguments[0], 3600000); 1168SqlExpression ms = sql.Multiply(mc.Arguments[0], 86400000); 1178returnValue = sql.Add(mc.Object, mc.Arguments[0]); 1181returnValue = sql.Subtract(mc.Object, mc.Arguments[0]); 1190returnValue = sql.FunctionCall(typeof(TimeSpan), "ABS", new SqlExpression[] { mc.Object }, source); 1193returnValue = sql.Unary(SqlNodeType.Negate, mc.Object, source); 1217providerType = sql.TypeProvider.From(targetType, 1); 1261if (sql.TypeProvider.From(targetType) != expr.SqlType || 1264returnValue = sql.ConvertTo(targetType, expr); 1267if (sql.TypeProvider.From(targetType) != expr.SqlType) { 1269returnValue = sql.ConvertTo(targetType, expr); 1299SqlExpression intDays = sql.FunctionCall(typeof(int), "DATEDIFF", 1301SqlExpression startPlusDays = sql.FunctionCall( 1303SqlExpression intMSec = sql.FunctionCall(typeof(int), "DATEDIFF", 1305SqlExpression result = sql.Multiply(sql.Add(sql.Multiply(sql.ConvertToBigint(intDays), 86400000), intMSec), 10000); // 1 millisecond = 10000 ticks 1306return sql.ConvertTo(resultType, result); 1320SqlExpression intDays = sql.FunctionCall(typeof(int), "DATEDIFF", new SqlExpression[] { day, start, end }, bo.SourceExpression); 1321SqlExpression startPlusDays = sql.FunctionCall(typeof(DateTimeOffset), "DATEADD", new SqlExpression[] { day, intDays, start }, bo.SourceExpression); 1322SqlExpression intMSec = sql.FunctionCall(typeof(int), "DATEDIFF", new SqlExpression[] { ms, startPlusDays, end }, bo.SourceExpression); 1323SqlExpression startPlusDaysPlusMsec = sql.FunctionCall(typeof(DateTimeOffset), "DATEADD", new SqlExpression[] { ms, intMSec, startPlusDays }, bo.SourceExpression); 1324SqlExpression intUSec = sql.FunctionCall(typeof(int), "DATEDIFF", new SqlExpression[] { us, startPlusDaysPlusMsec, end }, bo.SourceExpression); 1325SqlExpression startPlusDaysPlusMsecPlusUSec = sql.FunctionCall(typeof(DateTimeOffset), "DATEADD", new SqlExpression[] { us, intUSec, startPlusDaysPlusMsec }, bo.SourceExpression); 1326SqlExpression intNSec = sql.FunctionCall(typeof(int), "DATEDIFF", new SqlExpression[] { ns, startPlusDaysPlusMsecPlusUSec, end }, bo.SourceExpression); 1327SqlExpression startPlusDaysPlusMsecPlusUSecPlusNSec = sql.FunctionCall(typeof(DateTimeOffset), "DATEADD", new SqlExpression[] { ns, intNSec, startPlusDaysPlusMsecPlusUSec }, bo.SourceExpression); 1329SqlExpression result = sql.Add( 1330sql.Divide(intNSec, 100), 1331sql.Multiply(intUSec, 10), 1332sql.Multiply( 1333sql.Add( 1334sql.Multiply(sql.ConvertToBigint(intDays), 86400000), 1340return sql.ConvertTo(resultType, result); 1345SqlExpression ns = sql.DATEPART("NANOSECOND", right); 1346SqlExpression ss = sql.DATEPART("SECOND", right); 1347SqlExpression mi = sql.DATEPART("MINUTE", right); 1348SqlExpression hh = sql.DATEPART("HOUR", right); 1350right = sql.Add( 1351sql.Divide(ns, 100), 1352sql.Multiply( 1353sql.Add( 1354sql.Multiply(sql.ConvertToBigint(hh), 3600000), 1355sql.Multiply(sql.ConvertToBigint(mi), 60000), 1356sql.Multiply(sql.ConvertToBigint(ss), 1000) 1366sql.Unary(SqlNodeType.Negate, right, bo.SourceExpression), 1371sql.Unary(SqlNodeType.Negate, right, bo.SourceExpression), 1379return sql.AddTimeSpan(bo.Left, bo.Right, resultNullable); 1397return sql.Binary(SqlNodeType.Mul, mc.Arguments[0], mc.Arguments[1]); 1399return sql.Binary(SqlNodeType.Div, mc.Arguments[0], mc.Arguments[1]); 1401return sql.Binary(SqlNodeType.Sub, mc.Arguments[0], mc.Arguments[1]); 1403return sql.Binary(SqlNodeType.Add, mc.Arguments[0], mc.Arguments[1]); 1405return sql.Binary(SqlNodeType.Mod, mc.Arguments[0], mc.Arguments[1]); 1408return sql.FunctionCall(mc.Method.ReturnType, "ROUND", mc.Arguments, mc.SourceExpression); 1414return sql.Unary(SqlNodeType.Negate, mc.Arguments[0], source); 1418return sql.FunctionCall(mc.Method.ReturnType, "ROUND", 1421sql.ValueFromObject(0, false, mc.SourceExpression), 1422sql.ValueFromObject(1, false, mc.SourceExpression) 1427return sql.FunctionCall(mc.Method.ReturnType, "ROUND", 1430sql.ValueFromObject(0, false, mc.SourceExpression) 1458returnValue = sql.ValueFromObject("", false, source); 1466sum = sql.ConvertTo(typeof(string), exprs[0]); 1470sum = sql.Concat(sum, exprs[i]); 1473sum = sql.Concat(sum, sql.ConvertTo(typeof(string), exprs[i])); 1480returnValue = sql.Binary(SqlNodeType.EQ2V, mc.Arguments[0], mc.Arguments[1]); 1492return sql.FunctionCall(type, functionName, new SqlExpression[] { arguments[0] }, source); 1496return sql.FunctionCall(type, functionName, new SqlExpression[] { arguments[0], arguments[1] }, source); 1512pattern = sql.ValueFromObject(patternText, true, pattern.SourceExpression); 1531escape = sql.ValueFromObject("~", false, source); 1534return sql.Like(mc.Object, pattern, escape, source); 1546pattern = sql.ValueFromObject(patternText, true, pattern.SourceExpression); 1565escape = sql.ValueFromObject("~", false, source); 1568return sql.Like(mc.Object, pattern, escape, source); 1580pattern = sql.ValueFromObject(patternText, true, pattern.SourceExpression); 1599escape = sql.ValueFromObject("~", false, source); 1602return sql.Like(mc.Object, pattern, escape, source); 1611SqlExpression lenZeroExpr = sql.Binary(SqlNodeType.EQ, sql.CLRLENGTH(mc.Arguments[0]), sql.ValueFromObject(0, source)); 1612SqlWhen when = new SqlWhen(lenZeroExpr, sql.ValueFromObject(0, source)); 1613SqlExpression @else = sql.Subtract(sql.FunctionCall(typeof(int), "CHARINDEX", 1618return sql.SearchedCase(new SqlWhen[] { when }, @else, source); 1630SqlExpression lenZeroExpr = sql.Binary(SqlNodeType.EQ, sql.CLRLENGTH(mc.Arguments[0]), sql.ValueFromObject(0, source)); 1631lenZeroExpr = sql.AndAccumulate(lenZeroExpr, sql.Binary(SqlNodeType.LE, sql.Add(mc.Arguments[1], 1), sql.CLRLENGTH(mc.Object))); 1633SqlExpression @else = sql.Subtract(sql.FunctionCall(typeof(int), "CHARINDEX", 1637sql.Add(mc.Arguments[1], 1) 1640return sql.SearchedCase(new SqlWhen[] { when }, @else, source); 1653SqlExpression lenZeroExpr = sql.Binary(SqlNodeType.EQ, sql.CLRLENGTH(mc.Arguments[0]), sql.ValueFromObject(0, source)); 1654lenZeroExpr = sql.AndAccumulate(lenZeroExpr, sql.Binary(SqlNodeType.LE, sql.Add(mc.Arguments[1], 1), sql.CLRLENGTH(mc.Object))); 1656SqlExpression substring = sql.FunctionCall( 1660sql.ValueFromObject(1, false, source), 1661sql.Add(mc.Arguments[1], mc.Arguments[2]) 1664SqlExpression @else = sql.Subtract(sql.FunctionCall(typeof(int), "CHARINDEX", 1668sql.Add(mc.Arguments[1], 1) 1671return sql.SearchedCase(new SqlWhen[] { when }, @else, source); 1685SqlExpression reverseS = sql.FunctionCall(typeof(string), "REVERSE", new SqlExpression[] { exprS }, source); 1686SqlExpression reversePart = sql.FunctionCall(typeof(string), "REVERSE", new SqlExpression[] { exprPart }, source); 1687SqlExpression charIndex = sql.FunctionCall(typeof(int), "CHARINDEX", new SqlExpression[] { exprPart, exprS }, source); 1688SqlExpression charIndexOfReverse = sql.FunctionCall(typeof(int), "CHARINDEX", new SqlExpression[] { reversePart, reverseS }, source); 1689SqlExpression notContained = sql.Binary(SqlNodeType.EQ, charIndex, sql.ValueFromObject(0, false, source)); 1690SqlExpression len1 = sql.CLRLENGTH(exprS); 1691SqlExpression len2 = sql.CLRLENGTH(exprPart); 1692SqlExpression elseCase = sql.Add(sql.ValueFromObject(1, false, source), sql.Subtract(len1, sql.Add(len2, charIndexOfReverse))); 1694SqlWhen whenNotContained = new SqlWhen(notContained, sql.ValueFromObject(-1, false, source)); 1697SqlExpression lenZeroExpr = sql.Binary(SqlNodeType.EQ, sql.CLRLENGTH(mc.Arguments[0]), sql.ValueFromObject(0, source)); 1698SqlWhen whenLenZero = new SqlWhen(lenZeroExpr, sql.Subtract(sql.CLRLENGTH(exprS), 1)); 1700return sql.SearchedCase(new SqlWhen[] { whenLenZero, whenNotContained }, 1718SqlExpression first = sql.FunctionCall(typeof(string), "LEFT", new SqlExpression[] { s, sql.Add(i, 1) }, source); 1719SqlExpression reverseFirst = sql.FunctionCall(typeof(string), "REVERSE", new SqlExpression[] { first }, source); 1720SqlExpression reversePart = sql.FunctionCall(typeof(string), "REVERSE", new SqlExpression[] { part }, source); 1721SqlExpression charIndex = sql.FunctionCall(typeof(int), "CHARINDEX", new SqlExpression[] { part, first }, source); 1722SqlExpression charIndexOfReverse = sql.FunctionCall(typeof(int), "CHARINDEX", new SqlExpression[] { reversePart, reverseFirst }, source); 1723SqlExpression notContained = sql.Binary(SqlNodeType.EQ, charIndex, sql.ValueFromObject(0, false, source)); 1724SqlExpression len1 = sql.CLRLENGTH(first); 1725SqlExpression len2 = sql.CLRLENGTH(part); 1726SqlExpression elseCase = sql.Add(sql.ValueFromObject(1, false, source), sql.Subtract(len1, sql.Add(len2, charIndexOfReverse))); 1728SqlWhen whenNotContained = new SqlWhen(notContained, sql.ValueFromObject(-1, false, source)); 1732SqlExpression lenZeroExpr = sql.Binary(SqlNodeType.EQ, sql.CLRLENGTH(mc.Arguments[0]), sql.ValueFromObject(0, source)); 1733lenZeroExpr = sql.AndAccumulate(lenZeroExpr, sql.Binary(SqlNodeType.LE, sql.Add(mc.Arguments[1], 1), sql.CLRLENGTH(s))); 1736return sql.SearchedCase(new SqlWhen[] { whenLenZero, whenNotContained }, 1755SqlExpression first = sql.FunctionCall(typeof(string), "LEFT", new SqlExpression[] { s, sql.Add(i, 1) }, source); 1756SqlExpression reverseFirst = sql.FunctionCall(typeof(string), "REVERSE", new SqlExpression[] { first }, source); 1757SqlExpression reversePart = sql.FunctionCall(typeof(string), "REVERSE", new SqlExpression[] { part }, source); 1758SqlExpression charIndex = sql.FunctionCall(typeof(int), "CHARINDEX", new SqlExpression[] { part, first }, source); 1759SqlExpression charIndexOfReverse = sql.FunctionCall(typeof(int), "CHARINDEX", new SqlExpression[] { reversePart, reverseFirst }, source); 1760SqlExpression len1 = sql.CLRLENGTH(first); 1761SqlExpression len2 = sql.CLRLENGTH(part); 1762SqlExpression elseCase = sql.Add(sql.ValueFromObject(1, false, source), sql.Subtract(len1, sql.Add(len2, charIndexOfReverse))); 1763SqlExpression notContained = sql.Binary(SqlNodeType.EQ, charIndex, sql.ValueFromObject(0, false, source)); 1764notContained = sql.OrAccumulate(notContained, sql.Binary(SqlNodeType.LE, elseCase, sql.Subtract(i, count))); 1766SqlWhen whenNotContained = new SqlWhen(notContained, sql.ValueFromObject(-1, false, source)); 1770SqlExpression lenZeroExpr = sql.Binary(SqlNodeType.EQ, sql.CLRLENGTH(mc.Arguments[0]), sql.ValueFromObject(0, source)); 1771lenZeroExpr = sql.AndAccumulate(lenZeroExpr, sql.Binary(SqlNodeType.LE, sql.Add(mc.Arguments[1], 1), sql.CLRLENGTH(s))); 1774return sql.SearchedCase(new SqlWhen[] { whenLenZero, whenNotContained }, 1784SqlFunctionCall stuffCall = sql.FunctionCall( 1788sql.Add(mc.Arguments[0], 1), 1789sql.ValueFromObject(0, false, source), 1798SqlExpression insertingAtEnd = sql.Binary(SqlNodeType.EQ, sql.CLRLENGTH(mc.Object), mc.Arguments[0]); 1799SqlExpression stringConcat = sql.Concat(mc.Object, mc.Arguments[1]); 1801return sql.SearchedCase(new SqlWhen[] { new SqlWhen(insertingAtEnd, stringConcat) }, stuffCall, source); 1812SqlExpression len2 = sql.CLRLENGTH(exprS); 1813SqlExpression dontChange = sql.Binary(SqlNodeType.GE, len2, exprI); 1814SqlExpression numSpaces = sql.Subtract(exprI, len2); 1815SqlExpression padding = sql.FunctionCall(typeof(string), "SPACE", new SqlExpression[] { numSpaces }, source); 1816SqlExpression elseCase = sql.Concat(padding, exprS); 1818return sql.SearchedCase(new SqlWhen[] { new SqlWhen(dontChange, exprS) }, elseCase, source); 1828SqlExpression dontChange = sql.Binary(SqlNodeType.GE, sql.CLRLENGTH(exprS), exprI); 1829SqlExpression len2 = sql.CLRLENGTH(exprS); 1830SqlExpression numSpaces = sql.Subtract(exprI, len2); 1831SqlExpression padding = sql.FunctionCall(typeof(string), "REPLICATE", new SqlExpression[] { exprC, numSpaces }, source); 1832SqlExpression elseCase = sql.Concat(padding, exprS); 1834return sql.SearchedCase(new SqlWhen[] { new SqlWhen(dontChange, exprS) }, elseCase, source); 1845SqlExpression dontChange = sql.Binary(SqlNodeType.GE, sql.CLRLENGTH(exprS), exprI); 1846SqlExpression len2 = sql.CLRLENGTH(exprS); 1847SqlExpression numSpaces = sql.Subtract(exprI, len2); 1848SqlExpression padding = sql.FunctionCall(typeof(string), "SPACE", new SqlExpression[] { numSpaces }, source); 1849SqlExpression elseCase = sql.Concat(exprS, padding); 1851return sql.SearchedCase(new SqlWhen[] { new SqlWhen(dontChange, exprS) }, elseCase, source); 1861SqlExpression dontChange = sql.Binary(SqlNodeType.GE, sql.CLRLENGTH(exprS), exprI); 1862SqlExpression len2 = sql.CLRLENGTH(exprS); 1863SqlExpression numSpaces = sql.Subtract(exprI, len2); 1864SqlExpression padding = sql.FunctionCall(typeof(string), "REPLICATE", new SqlExpression[] { exprC, numSpaces }, source); 1865SqlExpression elseCase = sql.Concat(exprS, padding); 1867return sql.SearchedCase(new SqlWhen[] { new SqlWhen(dontChange, exprS) }, elseCase, source); 1873return sql.FunctionCall( 1877sql.Add(mc.Arguments[0], 1), 1878sql.CLRLENGTH(mc.Object), 1879sql.ValueFromObject("", false, source) 1884return sql.FunctionCall( 1888sql.Add(mc.Arguments[0], 1), 1890sql.ValueFromObject("", false, source) 1902return sql.FunctionCall( 1912return sql.FunctionCall( 1916sql.Add(mc.Arguments[0], 1), 1917sql.CLRLENGTH(mc.Object) 1922return sql.FunctionCall( 1926sql.Add(mc.Arguments[0], 1), 1934return sql.FunctionCall( 1937sql.FunctionCall(typeof(string), "RTRIM", new SqlExpression[] { mc.Object }, source) 1944return sql.FunctionCall(typeof(string), "LOWER", new SqlExpression[] { mc.Object }, source); 1949return sql.FunctionCall(typeof(string), "UPPER", new SqlExpression[] { mc.Object }, source); 1955return sql.FunctionCall(typeof(char), "SUBSTRING", new SqlExpression[] 1957sql.Add( mc.Arguments[0], 1), 1958sql.ValueFromObject(1, false, source) 1979return sql.FunctionCall(mc.Arguments[0].ClrType, "ABS", new SqlExpression[] { mc.Arguments[0] }, source); 2004return sql.Multiply(sql.ConvertToBigint(mc.Arguments[0]), sql.ConvertToBigint(mc.Arguments[1])); 2020SqlExpression expX = sql.FunctionCall(typeof(double), "EXP", new SqlExpression[] { x }, source); 2021SqlExpression minusX = sql.Unary(SqlNodeType.Negate, x, source); 2022SqlExpression expMinusX = sql.FunctionCall(typeof(double), "EXP", new SqlExpression[] { minusX }, source); 2023return sql.Divide(sql.Add(expX, expMinusX), 2); 2044SqlExpression log1 = sql.FunctionCall(typeof(double), "LOG", new SqlExpression[] { mc.Arguments[0] }, source); 2045SqlExpression log2 = sql.FunctionCall(typeof(double), "LOG", new SqlExpression[] { mc.Arguments[1] }, source); 2046return sql.Divide(log1, log2); 2059SqlExpression aLower = sql.Binary(SqlNodeType.LT, a, b); 2068SqlExpression aLower = sql.Binary(SqlNodeType.LT, a, b); 2069return sql.SearchedCase(new SqlWhen[] { new SqlWhen(aLower, a) }, b, source); 2086i = sql.ValueFromObject(0, false, source); 2097return sql.FunctionCall(x.ClrType, "round", new SqlExpression[] { x, i }, source); 2105SqlExpression roundX = sql.FunctionCall(type, "round", new SqlExpression[] { x, i }, source); 2106SqlExpression twiceX = sql.Multiply(x, 2); 2107SqlExpression round2X = sql.FunctionCall(type, "round", new SqlExpression[] { twiceX, i }, source); 2108SqlExpression condition = sql.AndAccumulate(sql.Binary(SqlNodeType.EQ, twiceX, round2X), sql.Binary(SqlNodeType.NE, x, roundX)); 2109SqlExpression specialCase = sql.Multiply(sql.FunctionCall(type, "round", new SqlExpression[] { sql.Divide(x, 2), i }, source), 2); 2110return sql.SearchedCase(new SqlWhen[] { new SqlWhen(condition, specialCase) }, roundX, source); 2115return sql.FunctionCall(typeof(int), "SIGN", new SqlExpression[] { mc.Arguments[0] }, source); 2126SqlExpression exp = sql.FunctionCall(typeof(double), "EXP", new SqlExpression[] { x }, source); 2127SqlExpression minusX = sql.Unary(SqlNodeType.Negate, x, source); 2128SqlExpression expMinus = sql.FunctionCall(typeof(double), "EXP", new SqlExpression[] { minusX }, source); 2129return sql.Divide(sql.Subtract(exp, expMinus), 2); 2145SqlExpression expX = sql.FunctionCall(typeof(double), "EXP", new SqlExpression[] { x }, source); 2146SqlExpression minusX = sql.Unary(SqlNodeType.Negate, x, source); 2147SqlExpression expMinusX = sql.FunctionCall(typeof(double), "EXP", new SqlExpression[] { minusX }, source); 2148return sql.Divide(sql.Subtract(expX, expMinusX), sql.Add(expX, expMinusX)); 2155return sql.FunctionCall(mc.Method.ReturnType, "ROUND", new SqlExpression[] { x, sql.ValueFromObject(0, false, source), sql.ValueFromObject(1, false, source) }, source); 2173return sql.LEN(exp); 2176return sql.DATALENGTH(exp); 2181return sql.DATEPART(datePart, exp); 2186return sql.FunctionCall(typeof(DateTime), "CONVERT", new SqlExpression[2] { date, exp }, source); 2194SqlExpression ms = sql.DATEPART("MILLISECOND", exp); 2195SqlExpression ss = sql.DATEPART("SECOND", exp); 2196SqlExpression mi = sql.DATEPART("MINUTE", exp); 2197SqlExpression hh = sql.DATEPART("HOUR", exp); 2201result = sql.DATEADD("MILLISECOND", sql.Unary(SqlNodeType.Negate, ms), result); 2202result = sql.DATEADD("SECOND", sql.Unary(SqlNodeType.Negate, ss), result); 2203result = sql.DATEADD("MINUTE", sql.Unary(SqlNodeType.Negate, mi), result); 2204result = sql.DATEADD("HOUR", sql.Unary(SqlNodeType.Negate, hh), result); 2211return sql.FunctionCall(typeof(DateTime), "CONVERT", new SqlExpression[2] { datetime, exp }, source); 2214SqlExpression hours = sql.DATEPART("HOUR", exp); 2215SqlExpression minutes = sql.DATEPART("MINUTE", exp); 2216SqlExpression seconds = sql.DATEPART("SECOND", exp); 2217SqlExpression milliseconds = sql.DATEPART("MILLISECOND", exp); 2219SqlExpression ticksFromHour = sql.Multiply(sql.ConvertToBigint(hours), TimeSpan.TicksPerHour); 2220SqlExpression ticksFromMinutes = sql.Multiply(sql.ConvertToBigint(minutes), TimeSpan.TicksPerMinute); 2221SqlExpression ticksFromSeconds = sql.Multiply(sql.ConvertToBigint(seconds), TimeSpan.TicksPerSecond); 2222SqlExpression ticksFromMs = sql.Multiply(sql.ConvertToBigint(milliseconds), TimeSpan.TicksPerMillisecond); 2223return sql.ConvertTo(typeof(TimeSpan), sql.Add(ticksFromHour, ticksFromMinutes, ticksFromSeconds, ticksFromMs)); 2227SqlExpression sqlDay = sql.DATEPART("dw", exp); 2231return sql.ConvertTo(typeof(DayOfWeek), 2232sql.Mod( 2233sql.Add(sqlDay, 2234sql.Add(new SqlVariable(typeof(int), sql.Default(typeof(int)), "@@DATEFIRST", source), 6) 2243return this.sql.Divide( 2244sql.ConvertToBigint( 2245sql.Add( 2246this.sql.Multiply(sql.ConvertToBigint(sql.DATEPART("HOUR", exp)), 3600000000000), 2247this.sql.Multiply(sql.ConvertToBigint(sql.DATEPART("MINUTE", exp)), 60000000000), 2248this.sql.Multiply(sql.ConvertToBigint(sql.DATEPART("SECOND", exp)), 1000000000), 2249sql.DATEPART("NANOSECOND", exp)) 2254return sql.ConvertToBigint(exp); 2257return this.sql.Add( 2258this.sql.Multiply(sql.DATEPART("HOUR", exp), 3600000), 2259this.sql.Multiply(sql.DATEPART("MINUTE", exp), 60000), 2260this.sql.Multiply(sql.DATEPART("SECOND", exp), 1000), 2261this.sql.Divide(sql.ConvertToDouble(sql.ConvertToBigint(sql.DATEPART("NANOSECOND", exp))), 1000000) 2264return sql.Divide(sql.ConvertToDouble(exp), TimeSpan.TicksPerMillisecond); 2267return this.sql.Add( 2268this.sql.Multiply(sql.DATEPART("HOUR", exp), 3600), 2269this.sql.Multiply(sql.DATEPART("MINUTE", exp), 60), 2270this.sql.DATEPART("SECOND", exp), 2271this.sql.Divide(sql.ConvertToDouble(sql.ConvertToBigint(sql.DATEPART("NANOSECOND", exp))), 1000000000) 2274return sql.Divide(sql.ConvertToDouble(exp), TimeSpan.TicksPerSecond); 2277return this.sql.Add( 2278this.sql.Multiply(sql.DATEPART("HOUR", exp), 60), 2279this.sql.DATEPART("MINUTE", exp), 2280this.sql.Divide(sql.ConvertToDouble(sql.DATEPART("SECOND", exp)), 60), 2281this.sql.Divide(sql.ConvertToDouble(sql.ConvertToBigint(sql.DATEPART("NANOSECOND", exp))), 60000000000) 2284return sql.Divide(sql.ConvertToDouble(exp), TimeSpan.TicksPerMinute); 2287return this.sql.Add( 2288this.sql.DATEPART("HOUR", exp), 2289this.sql.Divide(sql.ConvertToDouble(sql.DATEPART("MINUTE", exp)), 60), 2290this.sql.Divide(sql.ConvertToDouble(sql.DATEPART("SECOND", exp)), 3600), 2291this.sql.Divide(sql.ConvertToDouble(sql.ConvertToBigint(sql.DATEPART("NANOSECOND", exp))), 3600000000000) 2294return sql.Divide(sql.ConvertToDouble(exp), TimeSpan.TicksPerHour); 2297return this.sql.Divide( 2298this.sql.Add( 2299this.sql.DATEPART("HOUR", exp), 2300this.sql.Divide(sql.ConvertToDouble(sql.DATEPART("MINUTE", exp)), 60), 2301this.sql.Divide(sql.ConvertToDouble(sql.DATEPART("SECOND", exp)), 3600), 2302this.sql.Divide(sql.ConvertToDouble(sql.ConvertToBigint(sql.DATEPART("NANOSECOND", exp))), 3600000000000)), 2306return sql.Divide(sql.ConvertToDouble(exp), TimeSpan.TicksPerDay); 2309return this.sql.DATEPART("MILLISECOND", exp); 2311return sql.ConvertToInt(sql.Mod(sql.ConvertToBigint(sql.Divide(exp, TimeSpan.TicksPerMillisecond)), 1000)); 2314return this.sql.DATEPART("SECOND", exp); 2316return sql.ConvertToInt(sql.Mod(sql.ConvertToBigint(sql.Divide(exp, TimeSpan.TicksPerSecond)), 60)); 2319return this.sql.DATEPART("MINUTE", exp); 2321return sql.ConvertToInt(sql.Mod(sql.ConvertToBigint(sql.Divide(exp, TimeSpan.TicksPerMinute)), 60)); 2324return this.sql.DATEPART("HOUR", exp); 2326return sql.ConvertToInt(sql.Mod(sql.ConvertToBigint(sql.Divide(exp, TimeSpan.TicksPerHour)), 24)); 2329return this.sql.ValueFromObject(0, false, exp.SourceExpression); 2331return sql.ConvertToInt(sql.Divide(exp, TimeSpan.TicksPerDay)); 2345SqlExpression daysAdded = sql.DATEADD("day", sql.Divide(sqlTicks, TimeSpan.TicksPerDay), sqlDate, source, asNullable); 2346return sql.DATEADD("ms", sql.Mod(sql.Divide(sqlTicks, TimeSpan.TicksPerMillisecond), 86400000), daysAdded, source, asNullable); 2355SqlExpression msBigint = sql.ConvertToBigint(ms); 2356SqlExpression daysAdded = sql.DATEADD("day", sql.Divide(msBigint, 86400000), sqlDate, source, asNullable); 2357return sql.DATEADD("ms", sql.Mod(msBigint, 86400000), daysAdded, source, asNullable); 2366SqlExpression daysAdded = sql.DATETIMEOFFSETADD("day", sql.Divide(sqlTicks, TimeSpan.TicksPerDay), sqlDate, source, asNullable); 2367return sql.DATETIMEOFFSETADD("ms", sql.Mod(sql.Divide(sqlTicks, TimeSpan.TicksPerMillisecond), 86400000), daysAdded, source, asNullable); 2376SqlExpression msBigint = sql.ConvertToBigint(ms); 2377SqlExpression daysAdded = sql.DATETIMEOFFSETADD("day", sql.Divide(msBigint, 86400000), sqlDate, source, asNullable); 2378return sql.DATETIMEOFFSETADD("ms", sql.Mod(msBigint, 86400000), daysAdded, source, asNullable); 2441matchesList.Add(sql.ValueFromObject(true, false, source)); 2442valuesList.Add(sql.ValueFromObject(-1, false, source)); 2443matchesList.Add(sql.ValueFromObject(false, false, source)); 2444valuesList.Add(sql.ValueFromObject(0, false, source)); 2446return sql.Case(targetType, expr, matchesList, valuesList, source); 2450return sql.ConvertTo(targetType, expr); 2479pattern = sql.ValueFromObject(patternText, typeof(string), true, source); 2496SqlExpression escape = needsEscape ? sql.ValueFromObject("~", false, mc.SourceExpression) : null; 2497return sql.Like(mc.Arguments[0], pattern, escape, source);