簡體   English   中英

數學表達評估

[英]Mathematical expression evaluation

我有一個關於字符串的表達式求值的問題。 目前,我正在研究需要從存儲在數據庫中的字符串中計算數學表達式的項目,我想使用C#方法來評估此字符串,並且此函數將從存儲過程或添加到數據庫的函數中運行。 所以問題是我想在我的C#函數中使用已經創建的解決方案,例如NCalc或Jace.Net,但是如果我想從db運行它,則需要向db中添加dll(例如NCalc.dll或Jace.dll)部件。 並且添加這些解決方案是很成問題的,NCalc使用不安全的代碼,並且Sql Server無法從該dll運行方法,而Jace需要將許多其他dll添加到數據庫中,這是不可接受的解決方案。 因此,是否有人知道可以添加到db並運行的工作表達式評估器? 提前尋求幫助。

我正在使用Microsoft SQL Server 2012(SP1)-11.0.3128.0(X64)2)和.Net Framework 4.5

答:我認為您可以將JavaScript引擎嵌入您的興趣范圍。

例如http://jurassic.codeplex.com/-純dotnet,一個dll,很容易做餡餅(但仍然需要WITH PERMISSION_SET = UNSAFE / EXTERNAL_ACCESS,我認為對於CLR lib沒有特別設計的任何東西都需要UNSAFE,例如,就足夠了要使靜態非只讀字段成為UNSAFE,其他限制如下: http : //msdn.microsoft.com/en-us/library/ms403273.aspx )。

B.不要忘記T-SQL也是動態語言。 為什么不能只在T-SQL中保存表達式? IMHO Sql Server比任何可以通過CLR Drain調用的表達式評估器更適合運行“ Avg”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM