ax附件訪問研究

2022-03-19 04:28:24 字數 923 閱讀 4290

在標準ax中,允許在table中上傳文件,而這些文件是專用乙個表來儲存的,這個表是docuvalue

ax將所有table的文件都儲存在一起,那麼必定有關係將記錄連線,這種關係就是:

dataareaid

tableid

recid

文件儲存使用到了兩個表,docuref與docuvalue.

docuref存放的是各表的引用關係,而docuvalue則存放的是文件的核心內容。

這種關係可以用一條sql來說明:

select firstonly tableid from docuref

where docuref.refcompanyid == inventtable.dataareaid &&

docuref.reftableid == inventtable.tableid &&

docuref.refrecid == inventtable.recid  &&

docuref.typeid == 「"

join docuvalue

where

docuvalue.recid == docuref,valuerecid;

docuvalue.file欄位是文件內容,另外如果是指定路徑而非將文件存放在docuvalue中,除了使用上述邏輯之外,還需要獲取文件存放路徑。

在docuvalue中有幾個欄位是存放檔案路徑用的,乙個完整的檔案路徑存放在下面三個欄位中。

path

filename

filetype

不過,docuref表為我們提供了乙個方法用於取檔案路徑,此方法名是:

docuref.completefilename();

這個方法使用很簡單:

docuref::findrecid(….).completefilename();  //即可返回需要的檔案路徑

對於「多執行緒訪問同乙個變數是否需要加鎖」的研究

對於多執行緒訪問同一變數是否需要加鎖的問題,先前大家都討論過。今天用 驗證了一下之前的猜想 32位cpu與記憶體的最小交換資料為4位元組 次,這也是結構體要對齊4位元組的原因。在物理上,cpu對於同一4位元組的記憶體單元,不可能寫2個位元組的同時,又讀了3位元組。測試環境為 xeon 2cpu 2 ...