2013-12-11 38 views
0

我很晚才知道AS/400和IBM i系列,不幸的是,我在這個小型企業環境中提供的幫助非常有限 - 也就是我是IT部門。 AS/400系統與我之前使用的任何東西都不相似。我認爲這很模糊。如何以編程方式讀取'SH'文件。 AS/400系統上的前綴?

現在,我工作的公司使用食品分銷應用程序在AS/400上輸入訂單,發票,查詢庫存,維護庫存等。通過食物分發應用程序,可以使用帶有「SH」的文件創建自定義查詢。在他們的前綴。例如,文件「SH.ITEM」返回倉庫中的庫存物料。在高級銷售菜單中,您鍵入QRY,並允許您繼續使用這些文件創建查詢。

而不是使用Food Distribution Application進行查詢,我希望能夠直接閱讀這些SH文件。目前,我正在使用SQL Squirrel(DB2)讀取非-HH。「前綴模式/表,但我當然不能使用.SH文件。用戶定義的查詢可以使用DB2查詢,但是可以查詢「SH」。文件不能。數據庫名稱是QS36F。文件和用戶定義的查詢可以通過ftp在server_root/QS36F文件夾中找到。

如何使用編程語言讀取被.SH文件拖動的信息?我的選擇語言是python,但僞代碼或建議,以使這更加無縫將不勝感激。最終目標是使用AS/400信息更新其他數據庫系統。

截圖: 食品配送菜單: enter image description here 創建查詢的SH.ITEM: enter image description here SH.ITEM報告: enter image description here server_root中/ QS36F的FTP上市: enter image description here

+0

而不是使用Query/400實用程序,您可以嘗試STRSQL命令。您可以將Query/400查詢轉換爲SQL查詢管理器(QM)查詢。但總的來說,你可能會更多地欣賞松鼠。 – WarrenT

+0

爲了您的程序化訪問AS/400數據的更大目標,您絕對可以使用Python。無論你在哪裏運行Squirrel,你都可以使用Python和pyodbc。從AS/400本身來看,如果你有權限安裝東西,你可以使用iSeriesPython。我幾乎每天都使用這兩種方法。 –

+0

我絕對使用pyodbc。我有權限安裝,並可能會考慮安裝我已經查看過的iSeriesPython。不幸的是,我遇到了一些Windows控制檯問題。昨天看看我的其他問題:http://stackoverflow.com/questions/20530731/why-is-pythons-decodecp037-not-working-on-specifc-binary-array @JohnY,有沒有更好的建議比我在這裏獲得的F00002列(二進制,245字節)更清潔的信息:http://i.imgur.com/uqJ1Tee.jpg?解碼('cp037')對該列播放效果不佳。 – user1645914

回答

3

我不熟悉與SQL松鼠,但不清楚爲什麼你不能讀「SH」。前綴的文件。

一種可能性是「。」運算符是使用SQL命名時庫(模式)和文件(表)名稱之間的默認分隔符。

嘗試使用周圍的名稱引號,例如:

SELECT * FROM QS36F."SH.ITEM" 

此外,如果你需要訪問特定成員(分區),您將需要創建一個別名對查詢:

CREATE ALIAS QTEMP.M131204 FOR QS36F."SH.ITEM" (M131204); 
SELECT * FROM QTEMP.M131204; 

由於使用了QS36F庫,這也可能不是「外部描述的文件」。這意味着這些表格可能只有一個大的領域來保存所有的個別領域數據,並且它們在程序本身中被分解。


DBVisualizer是一個偉大的第三方SQL工具可以訪問數據庫,衆說紛紜。

+1

+ 1現在我正在查詢SH。文件。解碼信息是我的下一步。再次感謝! – user1645914

1

QS36F是用於保存S/36模擬程序使用的所有文件的庫,因此它們可能是程序定義的。使用像SH這樣的前綴。是一種在S/36上分組類似文件的方法,因爲文件位於任何庫之外。

在S/36有一個查詢產品。我幾乎一無所知,但我敢打賭,你的應用程序的查詢能力建立在它之上。

相關問題