Skip to content
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:**
Expand Down Expand Up @@ -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
```

Expand Down
2 changes: 1 addition & 1 deletion docs/CNAME
Original file line number Diff line number Diff line change
@@ -1 +1 @@
eval-sql.net

8 changes: 4 additions & 4 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}
</div>
Expand Down Expand Up @@ -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 %}
</div>
</div>
Expand Down Expand Up @@ -349,4 +349,4 @@ EXEC dbo.SQLNET_EvalResultSet @sqlnet
</div>

</div>
</div>
</div>
4 changes: 2 additions & 2 deletions docs/pages/api/api.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -46,4 +46,4 @@ SELECT SQLNET::New('x+y').ValueInt('x', 1).ValueInt('y', 2).EvalInt()
.card-group .card-body li {
padding-top: 5px;
}
</style>
</style>
6 changes: 3 additions & 3 deletions docs/pages/api/eval.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 %}

Expand Down Expand Up @@ -114,4 +114,4 @@ GO

-- SPLIT with multiple delimiters (',' and ';')
SELECT * FROM dbo.fn_Split('1, 2, 3; 4; 5', ',|;')
{% endhighlight %}
{% endhighlight %}
27 changes: 20 additions & 7 deletions docs/pages/api/options.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}

Expand All @@ -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 %}

Expand All @@ -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.
Expand Down Expand Up @@ -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 %}
20 changes: 10 additions & 10 deletions docs/pages/api/value.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}

Expand All @@ -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 %}

Expand All @@ -75,7 +75,7 @@ DECLARE @sqlnet SQLNET = SQLNET::New('var list = new List<int>() { 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 %}

Expand All @@ -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 %}
{% endhighlight %}
4 changes: 2 additions & 2 deletions docs/pages/faq/faq-eval-sql-net.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}
8 changes: 4 additions & 4 deletions docs/pages/problems/sql-server-eval.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}

Expand Down Expand Up @@ -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 %}
Expand Down Expand Up @@ -98,7 +98,7 @@ switch(x)
}
').ValueInt('x', @x).ValueInt('y', @y).ValueInt('z', @z).EvalInt()

SELECT @result
SELECT @result as Result
END

GO
Expand Down Expand Up @@ -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!
Getting better performance than User-Defined Function (UDF) and Table-Valued Function (TVF) is the Icing on the Cake!
2 changes: 1 addition & 1 deletion docs/pages/problems/sql-server-file-operation.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}

Expand Down
8 changes: 4 additions & 4 deletions docs/pages/problems/sql-server-function.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 %}

Expand Down Expand Up @@ -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 %}

Expand Down
10 changes: 5 additions & 5 deletions docs/pages/tutorials/arithmetic-expressions.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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 %}
Expand Down Expand Up @@ -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 %}
{% endhighlight %}
6 changes: 3 additions & 3 deletions docs/pages/tutorials/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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 %}

Expand Down Expand Up @@ -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.
- A **HUGE THANKS** for your help.