亚洲国产精品人久久,亚洲va国产日韩欧美精品色婷婷,久久久久88色偷偷,免费人成黄页在线观看国际

17站長網

17站長網 首頁 數據庫 SQLite教程 查看內容

Sqlite虛擬機VDBE原理

2023-3-21 15:29| 查看: 2410 |來源: 互聯網

VDBE (virtual database engine)是一個運行他自己的虛擬機語言組成的程序的虛擬機。每條程序都是用來查詢或者操作數據庫的。出于這個目的,VDBE的機器語言被設計 ...

VDBE (virtual database engine)是一個運行他自己的虛擬機語言組成的程序的虛擬機。每條程序都是用來查詢或者操作數據庫的。出于這個目的,VDBE的機器語言被設計用來進行搜索,讀和修改數據庫。

每一條VDBE 說明包括一個OPCODE 和3個OPRANDS分別為P1,P2和P3。P1,P2 為整數,P3是一個指向數據結構或者字符串的指針,有可能為空。大多數說明只用到1-2個OPRANDS,只有少數 說明用到了全部3個OPRANDS。有很多非常重要的說明根本沒有用到任何OPRANDS但是卻能讀取數據并且將結果寫入運行時棧當中。

一段VDBE代碼從說明0開始運行,直到

1。遇到致命錯誤;

2。執行了停止說明;

3。整段代碼運行完畢,所有打開的數據庫都已經關閉,所有內存都已經釋放,棧為空。

example:

1.建立一個數據表,并且插入一個數據

CREATE TABLE examp(one text,two int);

INSERT INTO examp VALUES( 'Hello,World!'99);

VDBE將這樣解釋并執行這兩條語句

addr opcode p1 p2 p3

---- ------------ ----- ----- -----------------------------------

0 Transaction 0 0

1 VerifyCookie 0 81

2 Transaction 1 0

3 Integer 0 0

4 OpenWrite 0 3 examp

5 NewRecno 0 0

6 String 0 0 Hello, World!

7 Integer 99 0 99

8 MakeRecord 2 0

9 PutIntKey 0 1

10 Close 0 0

11 Commit 0 0

12 Halt 0 0

整個操作被分解為12條VDBE說明,前3條和最后2條是系統的標準步驟,所以真正完成我們的工作的是中間7條說明。這段代碼中沒有跳轉語句,所有整個代碼段從上到下執行一遍。

0 Transaction 0 0

1 VerifyCookie 0 81

2 Transaction 1 0

Transaction 開始一項交互活動。直到 遇到Commit 或者Rollback 時停止。P1參數是交互開始的數據庫文件的索引。0號索引是主文件,1代表這個文件存放的是臨時表。如果P2參數不為0,則開始一個寫交互。當交互開始之 后,對應的數據庫文件獲得"write lock"狀態。在這項交互進行當中其他進程將無法讀取這個文件。一項交互必須在任何對數據文件的修改動作之前進行。如果P2是0這文件將獲得一個 "read lock"

VerifyCookie 檢查數據庫0號參數(計劃版本)以確保它=P2,P1是數據庫編號,0代表主數據庫文件,1代表文件擁有臨時表,其他更大的數字代表附加數據庫。

在建立VerifyCookie之前,必須有一個Transaction已經開始,或者已經建立了一個read lock.

第2個Transaction語句開始一項交互,應用對象是數據庫1 (一個臨時數據表)。

3 Integer 0 0

4 OpenWrite 0 3 examp

Integer 將整數P1 (0)壓入堆棧。0是下面 OpenWrite 所要用到的數據庫的編號,如果P3不為0 ,那么它就是一個代表相同整數的字符串,執行這條語句后,堆棧看起來是這樣

(integer) 0

OpenWrite 創建一個新的讀/寫指針,指向P1(0)也就是數據庫中的主文件“examp”,他的根頁(節點)是P2(3),因為數據庫文件第一頁是空的,第二頁存放 的是數據表的索引。從第3頁開始存放每個數據表當中的數據。P3("examp")是被打開的表的名字,這個參數是不被使用的,只是使代碼更容易閱讀而 已。這條語句將棧頂元素彈出(0) ,所以之后,堆棧為空。

5 NewRecno 0 0

NewRecno 為指針P1指向的數據表創建一個整型的新的紀錄號。這個紀錄好并不是一個用在表里的鍵值。新的紀錄號被壓入堆棧。這個動作之后,堆棧看起來是這樣:

(integer) new record key

6 String 0 0 Hello, World!

String 將它的P3參數壓入堆棧,之后,堆棧應該是這樣:

(string) "Hello World!"

(integer) new record key

7 Integer 99 0 99

動作之后,堆棧應該是這樣:

(integer) 99

(string) "Hello, World!"

(integer) new record key

8 MakeRecord 2 0

MakeRecord 將棧頂的P1個元素取出( 2個),并且將他們轉換成二進制,然后再把新生成的結構壓回堆棧。之后,堆棧應該是這樣:

(record) "Hello, World!", 99

(integer) new record key

9 PutIntKey 0 1

PutIntKey 將棧頂的2個元素作為一個entry寫入P1所指的表中,如果表中元素不存在,那么將被創建。如果已經存在,則會被覆蓋。數據是棧頂元素,鍵是下面的元 素。這條語句當中,進行2次出棧操作。P2參數用來判定是否修改表中當前rowID,P2=1則rowID 1,并且由 last_insert_rowID()函數返回,如果rowID=0,則行號不變,仍未當前ID.(這就解釋了"表中元素不存在,那么將被創建。如果已 經存在,則會被覆蓋").這條語句是文件操作上的insert.

10 Close 0 0

Close 關閉之前打開的一個文件指針(0)(對應于前面的OpenWrite), 如果文件指針當前并沒有打開,這條語句不被執行。

本文最后更新于 2023-3-21 15:29,某些文章具有時效性,若有錯誤或已失效,請在網站留言或聯系站長:17tui@17tui.com
·END·
站長網微信號:w17tui,關注站長、創業、關注互聯網人 - 互聯網創業者營銷服務中心

免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!

17站長網微信二維碼

始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!

掃一掃,關注站長網微信

大家都在看

熱門排行

最近更新

返回頂部
亚洲国产精品人久久,亚洲va国产日韩欧美精品色婷婷,久久久久88色偷偷,免费人成黄页在线观看国际
亚洲成av人片在线观看| 日韩视频一区二区三区在线播放| 欧美一级高清片| 久久这里只有精品6| 国产激情一区二区三区四区 | 91亚洲永久精品| ㊣最新国产の精品bt伙计久久| 亚洲精品日韩一| 日韩av中文字幕一区二区三区 | 中文字幕av一区二区三区| 亚洲一二三专区| 成人免费在线视频观看| 99国产欧美久久久精品| 91视频一区二区| 日韩免费视频线观看| 美国毛片一区二区| 亚洲综合色婷婷| 色国产精品一区在线观看| 麻豆精品一二三| 亚洲精品ww久久久久久p站| 久久免费视频色| 亚洲三级在线免费观看| 在线91免费看| 精品无人码麻豆乱码1区2区 | 成人黄色片在线观看| 欧美一级国产精品| 偷拍日韩校园综合在线| 色欧美88888久久久久久影院| 欧美一区二区免费| 色综合久久久网| 中国av一区二区三区| 5566中文字幕一区二区电影| 国产精品久久福利| 欧美视频精品在线| 激情小说欧美图片| 日本午夜一本久久久综合| 亚洲另类在线视频| 99国产精品久久久久| 欧美视频一区二区| 日韩欧美一区二区久久婷婷| 亚洲综合免费观看高清在线观看| 热久久久久久久| 日本一区二区三区四区| 欧美精品国产精品| 蜜桃视频在线观看一区二区| 亚洲免费在线看| 亚洲不卡在线观看| 亚洲精品在线观看网站| 亚洲第一综合色| 欧美亚洲禁片免费| 亚洲三级免费电影| 国产精一区二区三区| 国产一区二区三区日韩| 亚洲一区二区三区三| 欧美色图天堂网| 在线观看免费亚洲| 色婷婷激情一区二区三区| 韩国v欧美v日本v亚洲v| 欧美日本在线播放| 亚洲欧美色图小说| 国产精品天干天干在线综合| 日韩av中文字幕一区二区三区| 亚洲成a人片在线不卡一二三区| 欧美视频在线不卡| 日韩精品中文字幕一区二区三区| 精品福利一区二区三区 | 国产欧美一区二区在线观看| 国产网站一区二区三区| 国产精品福利av| 亚洲欧美日韩国产成人精品影院| 91丝袜美女网| 日韩vs国产vs欧美| 国产中文字幕一区| 国产精品午夜在线| 国产精品每日更新在线播放网址| 欧美三级韩国三级日本一级| 五月天欧美精品| 国产成人啪免费观看软件| 色综合色综合色综合 | 日本少妇一区二区| 精品在线一区二区| 成人黄色大片在线观看| 国产精品无遮挡| 国产成人鲁色资源国产91色综| 国产在线不卡一区| 国产精品亲子伦对白| 一区二区国产盗摄色噜噜| 亚洲国产精品麻豆| 不卡欧美aaaaa| 成人午夜视频网站| 99re8在线精品视频免费播放| 精品视频一区二区不卡| 亚洲久草在线视频| 欧美私人免费视频| 国产成人精品亚洲777人妖| 日本一区二区三区四区| 韩国av一区二区| 精品卡一卡二卡三卡四在线| 成人午夜激情影院| 国产一区在线看| 日韩va欧美va亚洲va久久| 亚洲一区在线观看视频| 色综合网站在线| 国产一区二区不卡在线| 亚洲欧美色综合| 中文字幕一区二区三区蜜月 | 日本成人超碰在线观看| 韩国中文字幕2020精品| 日韩视频在线永久播放| 成人免费视频一区二区| 国产日韩精品视频一区| 国产制服丝袜一区| 久久99精品国产麻豆婷婷| 日本成人在线网站| 国产精品小仙女| 欧美一区二区三区日韩| 一区二区视频在线| 国产成人99久久亚洲综合精品| 久久久久久久av麻豆果冻| 秋霞av亚洲一区二区三| 91小视频在线观看| 日本成人在线看| 国产91高潮流白浆在线麻豆| 国产精品午夜久久| 欧美一区二区三区视频| 中文字幕在线不卡一区| 99re热视频精品| 亚洲在线视频一区| 欧美α欧美αv大片| 国产一区二区福利| 一区二区三区在线播| 色婷婷精品久久二区二区蜜臂av| 一区二区三区色| 欧美va亚洲va| 国产一区二区精品在线观看| 日本午夜精品一区二区三区电影 | 日本黄色一区二区| 美国毛片一区二区三区| 国产91对白在线观看九色| 欧美精品一区二区三区视频| 国产一区二区免费在线| 亚洲视频在线观看一区| 色成人在线视频| 久久99久久久久久久久久久| 国产精品久久久久久一区二区三区 | 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 日韩一级黄色片| 中文字幕一区二区三区乱码在线 | 欧美成人精品1314www| 亚洲精品一区在线观看| 亚洲成a人片在线不卡一二三区| 免费看日韩a级影片| 综合久久给合久久狠狠狠97色| 国产欧美日韩精品a在线观看| 日韩av在线发布| 国产成人高清视频| 国产一区在线精品| 色欧美片视频在线观看在线视频| 一区二区三区四区中文字幕| 欧美成人性战久久| 免费在线看一区| 欧美日韩一区二区三区四区| 91精品国产91热久久久做人人| 欧美日韩成人一区二区| 欧美电视剧在线看免费| 秋霞国产午夜精品免费视频| 成人一级黄色片| 日韩一区二区三区免费看| 精品国产91洋老外米糕| 久久久久国产精品麻豆ai换脸| 久久综合精品国产一区二区三区| 欧美午夜精品理论片a级按摩| 国产久卡久卡久卡久卡视频精品| 日韩成人免费在线| 国产高清不卡一区| 国内精品视频666| 欧美精品xxxxbbbb| 国产精品久久久久久久久免费樱桃 | 日韩欧美资源站| 国产aⅴ综合色| 韩国三级中文字幕hd久久精品| 蜜桃视频免费观看一区| 在线免费亚洲电影| 亚洲日本在线看| 在线观看一区二区视频| 成人午夜精品在线| 亚洲在线一区二区三区| 久久综合九色综合欧美98| 精品视频全国免费看| 91蜜桃网址入口| 亚洲影视资源网| 欧美丝袜第三区| 七七婷婷婷婷精品国产| 精品国产1区2区3区| 成人av在线资源网| 奇米色777欧美一区二区| 国产精品情趣视频| 成人高清在线视频| 久久精品一区四区| 成人免费观看av|