使用JMP連接到數據庫,插入記錄我最近從客戶那裡得到了一些關於如何使用JMP執行數據庫操作的問題。一個問題是您是否可以使用JMP連接到數據庫。同 JMP 是的,您可以使用JMP腳本語言或Open數據庫對話框界面連接到符合ODBC的數據庫。如果安裝了相應的ODBC驅動程序(並且已定義數據源名稱或DSN),則使用文件 - >數據庫 - >打開數據庫命令將連接到數據庫並在JMP中打開指定的表。這個視頻 o顯示如何使用Microsoft Access數據庫文件配置ODBC DSN。
在這篇文章的示例中,我使用機器數據源名稱連接到Microsoft Access數據庫,並選擇了數據庫表tblVehicle。我也可以連接到ORACLE DBMS,MySQL數據庫甚至是SQL Server數據庫。

如果您不想使用菜單選項,也可以使用JSL執行相同操作。在此示例腳本中,為了演示目的,我連接到Microsoft Access數據庫並返回標題為“tblVehicle”的表中的所有記錄(參見上文)。
//連接數據庫並選擇表格
打開數據庫 (
“DSN = MS Access數據庫; DBQ = C:\ Users \ stkopr \ Documents \ MovinOn.accdb; DriverId = 25; FIL = MS Access; MaxBufferSize = 2048; PageTimeout = 5; UID = admin;”,
“SELECT * FROM tblVehicle”,
“tblVehicle”
) ;

另一個問題是我最近從客戶那裡得到的是你是否可以使用JMP將記錄插入數據庫。再一次,答案是肯定的,你可以。您可以使用JMP執行某些分析,然後將分析結果表或甚至單個記錄插回數據庫。
用於將單個記錄插入數據庫表的演示腳本如下所示。
//連接數據庫並插入新記錄
打開數據庫 ( “DSN = MS Access數據庫; DBQ = C:\ Users \ stkopr \ Documents \ MovinOn.accdb; DriverId = 25; FIL = MS Access; MaxBufferSize = 2048; PageTimeout = 5; UID = admin;”,
“插入到車輛中
(VehicleID,LicensePlateNum,Axle,Color)
VALUES('TRK-199','JMP 429',4,'藍');“ ) ;
使用之前提交的相同JSL,我可以在JMP中顯示選中新插入記錄的表。

您還可以訂購記錄,使用where子句對數據進行子集,提交嵌套子查詢或刪除單個記錄 - 所有這些都可以在JMP的舒適範圍內完成。
完成所有數據庫操作後,請記住關閉數據庫連接。同樣,這可以使用“打開數據庫”對話框窗口中的“斷開連接”按鈕或使用JSL來完成。
有關使用JMP ODBC接口的更多信息,請參閱“從數據庫導入數據”下的幫助文檔。
如果您使用此功能插入記錄,請告訴我。或者你通常把整個表寫回數據庫?
Guillaume寫道:嗨,非常感謝這個提示。日誌...紀堯姆中寫道:
嗨,
非常感謝這個提示。日誌捕獲功能是我正在尋找的功能。
貝斯特問候,
紀堯姆
Stan Koprowski寫道:嗨Guillaume,謝謝你的...斯坦科普羅斯基中寫道:
嗨Guillaume,
感謝您的評論,我很高興JSL能夠幫助您進行任何重新計算。
回答您的問題,是的,您可以將從數據庫返回的錯誤消息捕獲為JSL變量作為字符串。
一種方法是使用日誌捕獲功能。為了測試JSL代碼,我模擬了兩種不同類型的錯誤:
在從指定表中選擇列之前未建立與Access數據庫的連接的失敗錯誤。
未安裝適當的ODBC驅動程序導致的失敗錯誤。
我已經包含了一個示例,說明如何在以下JSL代碼中完成您想要執行的操作以及生成的錯誤消息:
名稱默認為此處(1);
AccessError01 =“訪問錯誤:”||日誌捕獲(開放數據庫(
“DSN = MS Access數據庫; DBQ = C:UsersstkoprDocumentsMovinOn.accdb; DriverId = 25; FIL = MS Access; MaxBufferSize = 2048; PageTimeout = 5; UID = admin;”,
“SELECT * FROM tblVehicle”,
“tblVehicle”
));
以下內容寫入日誌,錯誤字符串存儲在方案測試1的變量AccessError01中。
“訪問錯誤:
[Microsoft] [ODBC Microsoft Access驅動程序]找不到文件'(未知)'。
“
以下內容寫入日誌,字符串存儲在方案測試2的變量AccessError01中:
“訪問錯誤:
[iODBC] [驅動程序管理器]未找到數據源名稱且未指定默認驅動程序。無法加載驅動程序
“
再次感謝您的評論。
斯坦
Guillaume寫道:嗨Stan,我使用這個INSERT語句作為......紀堯姆中寫道:
嗨斯坦,
我在您的帖子中使用此INSERT語句描述了一些jsl應用程序,以便按時間段保存統計指標。
像這樣我以後可以請求這些指標(這可以避免重新計算)。
但我有一個問題。你知道JMP是否能夠捕獲數據庫錯誤並將數據庫錯誤存儲在一個jsl變量中嗎?如果是的話,我該怎麼辦?
我在這裡詳細描述了這個問題: https://communities.sas.com/message/167531#167531
謝謝
紀堯姆