如何將 SQL 查詢結果指派給變數?你好!我是 JMP/JSL 腳本的新手,在理解一些事情時遇到了一些困難。我覺得我想做的事情應該非常簡單,但似乎沒有什麼像我預期的那樣工作,谷歌讓我失望了。
我正在嘗試做的事情:我有一個簡單的預存程序,它僅根據我傳遞給它的幾個參數從我們的 SQL 資料庫傳回一個控制限制值。然後我嘗試將該值指派給某一列的 Levey Jennings 控制限。下面的程式碼是我目前得到的程式碼。
此程式碼輸出一個包含我想要的值的表格。
// Get limit value
LimitType = "Control";
LimitLevel = "Lower";
utagID = "6720";
vLCL = open database(
"Driver={SQL Server};Server=FC-SQL-P\PROD;Database=ctc_config;Trusted_Connection=yes",
"cus_sp_taglimits
@LimitType = " || LimitType || ",
@LimitLevel = " || LimitLevel || ",
@utagid = '" || utagID || "'"
);然後我嘗試使用“vLCL”的值並將其應用於不同的表列屬性。
// Change column property
Data Table( "testTable" ):testColumn << Set Property(
"Control Limits",
{Levey Jennings( LCL( vLCL ) )}
);當我用數字替換“vLCL”時,上述腳本運行正常。
我認為我遇到困難的地方是,如何使用我的 SQL 結果作為實際變數?有沒有辦法直接將值查詢到變數中而不是將其拉到新表中?
任何幫助都將不勝感激!先感謝您!
-簡
自動化和腳本回覆:如何將 SQL 查詢結果指派給變數?如果您的 vLCL 有您要尋找的內容,則只需對其進行評估,這裡有一個關於如何使用以下列屬性進行評估的選項
Eval(EvalExpr(
Data Table("testTable"):testColumn << Set Property(
"Control Limits",
{Levey Jennings(LCL(Expr(vLCL)))}
);
));
如果你不確定 vLCL 中儲存了什麼,你可以添加
show(vLCL);
查詢後驗證它是否具有您要查找的內容
回覆:如何將 SQL 查詢結果指派給變數?謝謝您的回覆!我嘗試將其編輯為您分享的內容,當我進行“展示”時,我得到了這個:
vLCL = DataTable("SQL 結果 799");
所以我認為我的問題是我實際上並沒有將查詢結果作為數值分配給 vLCL?你知道我該如何改正這個問題嗎?
再次感謝!
簡
回覆:如何將 SQL 查詢結果指派給變數?取決於 vLCL 所保存的結果表。資料表下標可能就足夠了,有時您可能必須將其與<<獲取行位置>結合。
下面是資料表下標的最基本範例,它從 LSL 和 USL 列的第一行中取得值
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(1),
Compress File When Saved(1),
New Column("LSL", Numeric, "Continuous", Format("Best", 12), Set Values([1])),
New Column("USL", Numeric, "Continuous", Format("Best", 12), Set Values([2]))
);
my_lsl = dt[1, "LSL"];
my_usl = dt[1, "USL"];
數據表下標
回覆:如何將 SQL 查詢結果指派給變數?噢天哪謝謝你這正是我所缺少的!
我將程式碼調整如下並且運行完美!
// Get limit value -- returns a new table with a single value
LimitType = "Control";
LimitLevel = "Lower";
utagID = "6720";
tblLCL = open database(
"Driver={SQL Server};Server=FC-SQL-P\PROD;Database=ctc_config;Trusted_Connection=yes",
"cus_sp_taglimits
@LimitType = " || LimitType || ",
@LimitLevel = " || LimitLevel || ",
@utagid = '" || utagID || "'"
);
//assign table value to variable
vLCL = tblLCL[1,1];
// Change column property
Eval(EvalExpr(
Data Table( "testTable" ):testColumn << Set Property(
"Control Limits",
{Levey Jennings( LCL( Expr(vLCL) ) )}
);
));謝謝謝謝謝謝!
-簡