從零開始寫一套公式引擎 二

2021-09-25 21:17:13 字數 1548 閱讀 3444

// 這個方法是遞迴的方法. 外部呼叫的時候判斷最外層呼叫的地方得到的返回值,

// 是error開頭的,就丟擲異常,異常的提示是error開頭的字串. 否則string 轉 double,作為最終結果.

public string test1(string formula_id)

string fbody = "";

for (int n = 1; n <= tssrsstr.maxrow; n++)

system.out.println("公式"+formula_id+"的body:"+fbody);

//獲取該公式的引數列表

string tsql2 = "select f_param,f_defaultvalue from formula_param "

+ "where f_id = '"+formula_id+"'";

ssrs tssrsstr2 = texesql.execsql(tsql2);

string fbody2 = "";

//todo check 不允許呼叫自己

for (int n = 1; n <= tssrsstr2.maxrow; n++) else

}elseelse

}}

//check 如果全部替換後還有引數,而不是全都是數字.

if(fbody.indexof(":")>=0)

//計算結果

string tsql3 = "select "+fbody+" from dual";

system.out.println("計算公式"+formula_id+"呼叫sql:"+tsql3);

ssrs tssrsstr3 = texesql.execsql(tsql3);

string result = "";

for (int n = 1; n <= tssrsstr3.maxrow; n++)

system.out.println("公式"+formula_id+"的result:"+result);

return result;

}}外面套個異常處理就完了,簡單的一批

執行公式b的日誌:

-------

公式b的body::j +:x + :a

-------

公式a的body::i + :j

計算公式a呼叫sql:select 5 + 6 from dual

公式a的result:11

計算公式b呼叫sql:select 6 +66 + 11 from dual

公式b的result:83

從零開始搭建一套lorawan閘道器(二)

說明 內容基本都來自1301的資料手冊,根據大意進行翻譯。sx1301實際上應該算乙個調製解調的數字基帶晶元,需要外接前端射頻晶元sx1255或者sx1257實現無線訊號的收發。單獨並不能使用。晶元設計的目的就是在更多的通道內使用隨機的擴頻因子同時進行多個資料報的接收。圖中的gps的作用是對時,取時...

從零開始搭建一套lorawan閘道器(三)

網上的大多數教程都是用樹莓派作為主控板,因為官方提供例程是樹莓派的,但是樹莓派主控晶元不單賣,沒法完全做成自己的產品,而且樹莓派作為一款開源硬體,目標本來是民用極客,作為閘道器使用在環境惡劣情況下不一定能穩定執行,隨著 戰的公升級未來樹莓派是否禁止也不一定。所以我選擇了一款國產全志的h5作為主控,作...

如何從零開始搭建一套web整合測試環境

如何從零開始搭建一套web整合測試環境 2017年03月03日 16 19 48 閱讀數 56443 測試環境的搭建是一名合格qa必須具備的技能。下面,結合ci和cd兩種不同軟體生產實踐,總結一下如何從零開始部署一套web整合測試環境。1.伺服器準備。根據專案和使用的中介軟體的規模,準備好乙個或多個...