第三十章 Cach 命令大全 VIEW 命令

2021-10-08 16:26:58 字數 3868 閱讀 7108

描述引數

示例注意

修改記憶體中的資料

讀寫資料庫塊並修改記憶體中的資料。

intersystems建議避免使用view命令。在任何環境中使用時,它都可能破壞記憶體結構。

錯誤地使用view容易損壞記憶體或caché資料庫。

openclose一起用。單獨使用不會有反映。

view:pc viewargument

v:pc viewargument

其中viewargument是以下之一:

block

offset:mode:length:newvalue

view命令讀取和寫入資料庫塊,並在記憶體中寫入位置。view有兩種引數形式:

view塊在caché資料庫和記憶體之間傳輸資料。

檢視offset:mode:length:newvalue將newvalue放置在由offset,mode和length標識的記憶體位置中。

可以使用$view功能檢查記憶體中的資料。

intersystems建議避免使用view命令。在任何環境中使用時,它都可能破壞記憶體結構。

可選的後置條件表示式。如果後置條件表示式為true(計算為非零數值),則caché執行命令。如果後置條件表示式為假(計算為零),則caché不執行命令。

塊位置,指定為整數。如果block是乙個正整數,則view將該數字塊讀入檢視緩衝區。如果block為負整數,則view將當前在檢視緩衝區中的塊寫入該塊位址。塊和offset:mode:length:newvalue引數是互斥的。

如果該塊已經在記憶體緩衝區中,則緩衝區的當前內容將被複製。

塊位置0不是有效位置。嘗試指定view 0會導致錯誤。

與mode指定的記憶體區域中的基址之間的偏移量(以位元組為單位)。

該儲存區的基址將用於計算要修改的資料。

要修改的資料的長度。

將位元組數指定為1到4或8的整數。還可以使用字母cp表示當前平台上位址字段(指標)的大小。

如果newvalue定義了字串,則將位元組數指定為負整數(從1開始)。如果newvalue的長度超過此數字,則caché會忽略無關的字元。如果newvalue的長度小於此數字,則caché將儲存提供的字元,並保留其餘儲存位置不變。

要以相反順序儲存位元組值(最低位址處的低位位元組),請在長度數字後加上字母o,並將兩者都用雙引號引起來。

替換值要儲存在儲存位置。

下面的示例將caché資料庫中的第六個塊讀入檢視緩衝區:

view 6
下面的示例大概在修改資料之後,將檢視緩衝區寫回到caché資料庫的第六個塊:

view -6
下面的示例將字串「wxyz」複製到四個位元組,從檢視緩衝區的偏移量addr開始。表示式$view(addr,0,-4)將產生值「wxyz」

view addr:0:-4:"wxyz"
請謹慎使用view命令。它通常用於除錯和修復caché資料庫和caché系統資訊。錯誤地使用view容易損壞記憶體或caché資料庫。

view命令是受限制的系統功能。這是受保護的命令,因為呼叫的**位於cachesys資料庫中。

當用於讀取和寫入資料庫緩衝區時,view命令可與檢視緩衝區(裝置63)一起使用。檢視緩衝區是乙個特殊的儲存區,必須先開啟它,然後才能執行任何view操作。

開啟檢視緩衝區(使用open命令)時,表示要與檢視緩衝區關聯的caché資料庫(cache.dat)。然後,使用view命令,可以將caché資料庫中的各個塊讀入檢視緩衝區。

將乙個塊讀入檢視緩衝區後,可以使用$view函式檢查資料。或者,可以使用view命令來修改資料。如果修改資料,則可以再次使用view命令將修改後的塊寫回到caché資料庫。

在使用view讀寫caché資料庫中的資料塊之前,必須首先使用open命令開啟檢視緩衝區。

開啟檢視緩衝區。檢視緩衝區指定為裝置編號63。因此,命令為:

open 63:location
其中location是包含要與檢視緩衝區關聯的cache.dat檔案的命名空間。該位置是特定於實現的。open 63命令通過分配系統記憶體區域來建立檢視緩衝區,該區域的大小等於caché資料庫使用的塊大小。

使用view塊形式從關聯的caché資料庫中讀取乙個塊。將塊指定為正整數。例如:

view 4
本示例將caché資料庫中的第四個塊讀入檢視緩衝區。由於檢視緩衝區的大小等於caché資料庫中使用的塊大小,因此在任何給定時間,檢視緩衝區只能包含乙個塊。在閱讀後續塊時,每個新塊都會覆蓋當前塊。要確定要從caché資料庫讀取的塊,應該熟悉檔案的結構。

使用$view功能檢查塊中的資料,或使用view命令對其進行修改。

如果更改了檢視緩衝區中的任何資料,請將其寫回到caché資料庫。要寫入資料,請使用view塊形式,但為塊指定乙個負整數。塊編號通常與檢視緩衝區中當前塊的編號匹配,但並非必須如此。指定的塊號標識檔案緩衝區中的塊將替換(覆蓋)檔案中的哪個塊。例如,view -5將caché資料庫中的第五個塊替換為檢視緩衝區中的當前塊。

使用close 63關閉檢視緩衝區。

當開啟檢視緩衝區時,caché不會自動清除現有塊。這使可以按照以下順序將資料塊從乙個caché資料庫傳輸到另乙個資料庫:

使用open 63並指定包含第乙個caché資料庫的命名空間。

使用view將所需的塊從檔案讀取到檢視緩衝區中。

如有必要,請使用view修改檢視緩衝區中的資料。

再次使用open 63,並指定包含第二個caché資料庫的命名空間。

使用view將塊從檢視緩衝區寫入第二個caché資料庫。

使用close 63關閉檢視緩衝區。

除了從caché資料庫讀取和寫入資料之外,view命令還允許修改檢視緩衝區或其他系統記憶體區域中記憶體中的資料。

要修改資料,請使用以下格式:

view offset:mode:length:newvalue
所有四個引數都是必需的。

可以通過將新值儲存到記憶體位置來修改資料,該值指定為與mode指示的基址相比的位元組偏移量。可以在length引數中指定受影響的記憶體量。

下表顯示了mode的可能值:

mode

記憶體管理區域

基址n>0

程序n的位址空間,其中n是該程序的$ job值,即程序id(pid)。00

檢視緩衝區

檢視緩衝區的開始

-1程序的分割槽

分割槽開始

-2系統表

系統表的開頭

-3程序的位址空間0-6

保留供系統間使用

-7僅由完整性檢查實用程式使用

第三十六章 Cach 命令大全 ZTRAP 命令

描述引數示例 使用指定的錯誤 強制執行錯誤。ztrap pc ztraparg ztrap pc zerror ztrap pc zeztrap命令接受命令後置條件和引數間接。ztrap具有三種形式 不帶引數的ztrap會強制使用錯誤 進行錯誤。ztrap ztraparg強制執行錯誤,錯誤 為,其...

第三十二章 Cach 變數大全 ZJOB 變數

包含job狀態資訊。zjob zj zjob包含乙個數字,其中每個位代表作業狀態的乙個特定方面。zjob返回乙個整數,該整數由設定的狀態位的總和組成。例如,如果 zjob 5,則表示設定了1位和4位。要測試單個 zjob位設定,可以使用整數除 和模 運算子。例如,zjob x 2,其中x是位號。下表...

《MySQL必知必會》第二十八 第三十章

mysql的安全基礎是使用者不能對過多的資料具有過多的訪問權,即需要給使用者提供他們所需的訪問權,且僅提供他們所需的訪問權,這就是訪問控制 在現實的日常工作中,決不能使用root,應該建立一系列的賬號 mysql使用者賬號和資訊儲存在名為mysql的mysql資料庫中,在需要獲得所有使用者賬號列表時...