diff --git a/README.md b/README.md index b6024ec..7e7b05d 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Provide to your SQL Server all missing pieces like regular expression and dynami ```sql -- SELECT 3 -SELECT SQLNET::New('x+y').ValueInt('x', 1).ValueInt('y', 2).EvalInt() +SELECT SQLNET::New('x+y').ValueInt('x', 1).ValueInt('y', 2).EvalInt() as Result ``` **Find your solutions:** @@ -53,7 +53,7 @@ DECLARE @sqlnet SQLNET = SQLNET::New('x*y+z') SELECT @sqlnet.ValueInt('x', X) .ValueInt('y', Y) .ValueInt('z', Z) - .EvalInt() + .EvalInt() as Result FROM @table ``` diff --git a/docs/CNAME b/docs/CNAME index 6f7e944..8b13789 100644 --- a/docs/CNAME +++ b/docs/CNAME @@ -1 +1 @@ -eval-sql.net \ No newline at end of file + diff --git a/docs/index.md b/docs/index.md index 66a9878..e1ea73c 100644 --- a/docs/index.md +++ b/docs/index.md @@ -63,7 +63,7 @@ INSERT INTO @tableFormula VALUES ('x+y*z', 1, 2, 3 ), SELECT SQLNET::New(Formula) .ValueInt('x', X) .ValueInt('y', Y) - .ValueInt('z', Z).EvalInt() + .ValueInt('z', Z).EvalInt() as Result FROM @tableFormula {% endhighlight %} @@ -203,8 +203,8 @@ DECLARE @sqlnet SQLNET = SQLNET::New('x*y+z') SELECT @sqlnet.ValueInt('x', X) .ValueInt('y', Y) .ValueInt('z', Z) - .EvalInt() -FROM @table + .EvalInt() as Result +FROM @table {% endhighlight %} @@ -349,4 +349,4 @@ EXEC dbo.SQLNET_EvalResultSet @sqlnet - \ No newline at end of file + diff --git a/docs/pages/api/api.md b/docs/pages/api/api.md index f402b51..20c0672 100644 --- a/docs/pages/api/api.md +++ b/docs/pages/api/api.md @@ -8,7 +8,7 @@ Let take a very short overview with the API {% include template-example.html %} {% highlight csharp %} -SELECT SQLNET::New('x+y').ValueInt('x', 1).ValueInt('y', 2).EvalInt() +SELECT SQLNET::New('x+y').ValueInt('x', 1).ValueInt('y', 2).EvalInt() as Result {% endhighlight %} - **SQLNET:** A CLR Type created by Eval SQL.NET library @@ -46,4 +46,4 @@ SELECT SQLNET::New('x+y').ValueInt('x', 1).ValueInt('y', 2).EvalInt() .card-group .card-body li { padding-top: 5px; } - \ No newline at end of file + diff --git a/docs/pages/api/eval.md b/docs/pages/api/eval.md index f403a3c..4321283 100644 --- a/docs/pages/api/eval.md +++ b/docs/pages/api/eval.md @@ -26,7 +26,7 @@ DECLARE @value_int INT = @sqlnet.EvalInt(); DECLARE @value_decimal DECIMAL(18, 2) = CAST(@sqlnet.Eval() AS DECIMAL(18, 2)) -- SELECT 3, 3, 3.00 -SELECT @value_variant, @value_int, @value_decimal +SELECT @value_variant as variant , @value_int as int, @value_decimal as decimal {% endhighlight %} ## EvalReadAccess @@ -57,7 +57,7 @@ DECLARE @result SQLNET = @sqlnet.EvalSQLNET() -- Use the value previously resolved -- SELECT 4 -SELECT @result.Code('value.Count').EvalInt() +SELECT @result.Code('value.Count').EvalInt() as Result Useful to optimize code with object initialization like Regex. {% endhighlight %} @@ -114,4 +114,4 @@ GO -- SPLIT with multiple delimiters (',' and ';') SELECT * FROM dbo.fn_Split('1, 2, 3; 4; 5', ',|;') -{% endhighlight %} \ No newline at end of file +{% endhighlight %} diff --git a/docs/pages/api/options.md b/docs/pages/api/options.md index aed1f87..b38c319 100644 --- a/docs/pages/api/options.md +++ b/docs/pages/api/options.md @@ -9,7 +9,7 @@ AutoDispose object and delegate from the cache after the code has been evaluated {% include template-example.html %} {% highlight csharp %} -- SELECT 3 -SELECT SQLNET::New('1+2').AutoDispose().EvalInt() +SELECT SQLNET::New('1+2').AutoDispose().EvalInt() as Result {% endhighlight %} @@ -23,8 +23,10 @@ DECLARE @sqlnet SQLNET = SQLNET::New('') {% include template-example.html %} {% highlight csharp %} +DECLARE @sqlnet SQLNET = SQLNET::New('') + -- SELECT 3 -SELECT @sqlnet.Code('1+2').EvalInt() +SELECT @sqlnet.Code('1+2').EvalInt() as Result {% endhighlight %} @@ -37,13 +39,24 @@ Dispose object and delegate from the cache DECLARE @sqlnet SQLNET = SQLNET::New('x + y') SELECT @sqlnet - .ValueInt('x', ColumnValueX) - .ValueInt('y', ColumnValueY) - .EvalInt() -FROM TableFormula + .ValueInt('x', 1) + .ValueInt('y', 2) + .EvalInt() as Result + + +SELECT @sqlnet.getcode() as Result DECLARE @dispose BIT = @sqlnet.Dispose() +--Not work because dipose... +SELECT @sqlnet + .ValueInt('x', 1) + .ValueInt('y', 2) + .EvalInt() as Result + + +--Not work because dipose... +SELECT @sqlnet.getcode() as Result {% endhighlight %} Don't worry, we have you covered! Object and Delegate are automatically disposed after a period of time without activity. @@ -78,6 +91,6 @@ Root is required when the expression already specified value. This feature has b DECLARE @sqlnet SQLNET = SQLNET::New('x+y').ValueInt('y', 2).Root() -- SELECT 3 -SELECT @sqlnet.ValueInt('x', 1).EvalInt() +SELECT @sqlnet.ValueInt('x', 1).EvalInt() as Result {% endhighlight %} diff --git a/docs/pages/api/value.md b/docs/pages/api/value.md index 14c659c..5a25bc9 100644 --- a/docs/pages/api/value.md +++ b/docs/pages/api/value.md @@ -23,16 +23,16 @@ Add or update a value associated with the specified key. {% include template-example.html %} {% highlight csharp %} -- SELECT 3 -SELECT SQLNET::New('x+1').ValueInt('x', 2).EvalInt() +SELECT SQLNET::New('x+1').ValueInt('x', 2).EvalInt() as Result -- SELECT 3 -SELECT SQLNET::New('x+1').ValueInt('x', 2).EvalInt() +SELECT SQLNET::New('x+1').ValueInt('x', 2).EvalInt() as Result -- SELECT 1 -SELECT SQLNET::New('x.Length').ValueBinary('x', 0x11).Eval() +SELECT SQLNET::New('x.Length').ValueBinary('x', 0x11).Eval() as Result -- SELECT 'ZZZ Projects' -SELECT SQLNET::New('"ZZZ " + x').ValueString('x', 'Projects').Eval() +SELECT SQLNET::New('"ZZZ " + x').ValueString('x', 'Projects').Eval() as Result {% endhighlight %} @@ -58,10 +58,10 @@ DECLARE @x2 INT = 2; DECLARE @sqlnet SQLNET = SQLNET::New('x.HasValue ? x.Value + 1 : 0'); -- SELECT 0 -SELECT @sqlnet.ValueNullableInt('x', @x1).EvalInt() +SELECT @sqlnet.ValueNullableInt('x', @x1).EvalInt() as Result -- SELECT 3 -SELECT @sqlnet.ValueNullableInt('x', @x2).EvalInt() +SELECT @sqlnet.ValueNullableInt('x', @x2).EvalInt() as Result {% endhighlight %} @@ -75,7 +75,7 @@ DECLARE @sqlnet SQLNET = SQLNET::New('var list = new List() { 1, 2, 3, 4}') DECLARE @result SQLNET = @sqlnet.EvalSQLNET() -- SELECT 4 -SELECT SQLNET::New('x.Count').ValueSQLNET('x', @result).Eval() +SELECT SQLNET::New('x.Count').ValueSQLNET('x', @result).Eval() AS Result {% endhighlight %} @@ -94,9 +94,9 @@ Gets the value associated with the specified key. {% include template-example.html %} {% highlight csharp %} -- SELECT 1 -SELECT SQLNET::New('x + 1').Val('x', 1).GetValue('x') +SELECT SQLNET::New('x + 1').Val('x', 1).GetValue('x') as Result -- SELECT 1 -SELECT SQLNET::New('x + 1').Val('x', 1).GetValueBigInt('x') +SELECT SQLNET::New('x + 1').Val('x', 1).GetValueBigInt('x') as Result -{% endhighlight %} \ No newline at end of file +{% endhighlight %} diff --git a/docs/pages/faq/faq-eval-sql-net.md b/docs/pages/faq/faq-eval-sql-net.md index b804c03..2590ee4 100644 --- a/docs/pages/faq/faq-eval-sql-net.md +++ b/docs/pages/faq/faq-eval-sql-net.md @@ -87,8 +87,8 @@ In C#, decimal must be suffixed with "m" to make them valid. By default "1.1" in {% highlight csharp %} // Trow exception -SELECT SQLNET::New('(x)+1.1234').Val('x', 1.1).Eval() +SELECT SQLNET::New('(x)+1.1234').Val('x', 1.1).Eval() as Result -- SELECT 2.2234 -SELECT SQLNET::New('(x)+1.1234m').Val('x', 1.1).Eval() +SELECT SQLNET::New('(x)+1.1234m').Val('x', 1.1).Eval() as Result {% endhighlight %} diff --git a/docs/pages/problems/sql-server-eval.md b/docs/pages/problems/sql-server-eval.md index 5f97e7e..1b4e9e5 100644 --- a/docs/pages/problems/sql-server-eval.md +++ b/docs/pages/problems/sql-server-eval.md @@ -19,7 +19,7 @@ VALUES ( 'x+y*z', 1, 2, 3 ), -- Select_0: 7 -- Select_1: 9 -SELECT SQLNET::New(Formula).ValueInt('x', X).ValueInt('y', Y).ValueInt('z', Z).EvalInt() +SELECT SQLNET::New(Formula).ValueInt('x', X).ValueInt('y', Y).ValueInt('z', Z).EvalInt() as Result FROM @tableFormula {% endhighlight %} @@ -57,7 +57,7 @@ DECLARE @customFilter SQLNET = SQLNET::New('quantity > 3 && price > 0') -- Select_1: 15, 2.00, $30.00 -- Select_2: 84, 5.00, $420.00 SELECT * , - @customColumn.ValueInt('quantity', Quantity).Val('price', Price).EvalString() + @customColumn.ValueInt('quantity', Quantity).Val('price', Price).EvalString() as Result FROM @items WHERE @customFilter.ValueInt('quantity', Quantity).Val('price', Price).EvalBit() = 1 {% endhighlight %} @@ -98,7 +98,7 @@ switch(x) } ').ValueInt('x', @x).ValueInt('y', @y).ValueInt('z', @z).EvalInt() - SELECT @result + SELECT @result as Result END GO @@ -151,4 +151,4 @@ Eval SQL.NET can really be seen in SQL Server as the function "eval()" equivalen - Access to C# Keywords - Access to C# Objects -Getting better performance than User-Defined Function (UDF) and Table-Valued Function (TVF) is the Icing on the Cake! \ No newline at end of file +Getting better performance than User-Defined Function (UDF) and Table-Valued Function (TVF) is the Icing on the Cake! diff --git a/docs/pages/problems/sql-server-file-operation.md b/docs/pages/problems/sql-server-file-operation.md index 16b1d4f..aaf5516 100644 --- a/docs/pages/problems/sql-server-file-operation.md +++ b/docs/pages/problems/sql-server-file-operation.md @@ -104,7 +104,7 @@ backupFiles.ForEach(x => x.CopyTo(x.FullName.Replace(path, backupPath))); // RETURN the number of affected files return backupFiles.Count; -').Impersonate().EvalReadAccessInt() +').Impersonate().EvalReadAccessInt() as Result {% endhighlight %} diff --git a/docs/pages/problems/sql-server-function.md b/docs/pages/problems/sql-server-function.md index d1f2a7c..f54f59e 100644 --- a/docs/pages/problems/sql-server-function.md +++ b/docs/pages/problems/sql-server-function.md @@ -79,10 +79,10 @@ catch (Exception ex) GO -- SELECT 4 -SELECT dbo.fn_try_catch(4, 0) +SELECT dbo.fn_try_catch(4, 0) as Result -- SELECT 2 -SELECT dbo.fn_try_catch(4, 2) +SELECT dbo.fn_try_catch(4, 2) as Result {% endhighlight %} @@ -200,14 +200,14 @@ using(var connection = new SqlConnection(s)) return dt.Rows.Count; } } -').ValueString('sql', @sql).EvalInt() +').ValueString('sql', @sql).EvalReadAccessInt() END GO -- SELECT 2 -SELECT dbo.fn_Exec_Count('SELECT 1 UNION SELECT 2') +SELECT dbo.fn_Exec_Count('SELECT 1 UNION SELECT 2') as Result {% endhighlight %} diff --git a/docs/pages/tutorials/arithmetic-expressions.md b/docs/pages/tutorials/arithmetic-expressions.md index 08b68f9..495f790 100644 --- a/docs/pages/tutorials/arithmetic-expressions.md +++ b/docs/pages/tutorials/arithmetic-expressions.md @@ -23,10 +23,10 @@ SET @result = SQLNET::New('x*y+z') .ValueInt('x', @x) .ValueInt('y', @y) .ValueInt('z', @z) - .EvalInt() + .EvalInt() -- SELECT 14 -SELECT @result +SELECT @result as Result {% endhighlight %} ### Using formula & table variables @@ -48,7 +48,7 @@ DECLARE @sqlnet SQLNET = SQLNET::New('x*y+z') SELECT @sqlnet.ValueInt('x', X) .ValueInt('y', Y) .ValueInt('z', Z) - .EvalInt() + .EvalInt() as Result FROM @table {% endhighlight %} @@ -78,6 +78,6 @@ DECLARE @sqlnet SQLNET = SQLNET::New('') SELECT @sqlnet.Code(Formula) .ValueInt('x', X) .ValueInt('y', Y) - .ValueInt('z', Z).EvalInt() + .ValueInt('z', Z).EvalInt() as Result FROM @table -{% endhighlight %} \ No newline at end of file +{% endhighlight %} diff --git a/docs/pages/tutorials/overview.md b/docs/pages/tutorials/overview.md index a0373a6..74679a3 100644 --- a/docs/pages/tutorials/overview.md +++ b/docs/pages/tutorials/overview.md @@ -12,7 +12,7 @@ Provide to your SQL Server all missing pieces like regular expression and dynami {% include template-example.html %} {% highlight csharp %} -- SELECT 3 -SELECT SQLNET::New('x+y').ValueInt('x', 1).ValueInt('y', 2).EvalInt() +SELECT SQLNET::New('x+y').ValueInt('x', 1).ValueInt('y', 2).EvalInt() as Result {% endhighlight %} ### Find your solutions: @@ -53,7 +53,7 @@ DECLARE @sqlnet SQLNET = SQLNET::New('x*y+z') SELECT @sqlnet.ValueInt('x', X) .ValueInt('y', Y) .ValueInt('z', Z) - .EvalInt() + .EvalInt() as Result FROM @table {% endhighlight %} @@ -142,4 +142,4 @@ The best way to contribute is by spreading the word about the library: - Fork it - Star it - Share it - - A **HUGE THANKS** for your help. \ No newline at end of file + - A **HUGE THANKS** for your help.