亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        C語言在數(shù)據(jù)庫管理中的應(yīng)用

        2011-08-30 06:11:38
        科技傳播 2011年17期
        關(guān)鍵詞:數(shù)據(jù)庫語言管理

        張 波

        睢寧縣供電公司,江蘇徐州 221215

        數(shù)據(jù)庫系統(tǒng),是由數(shù)據(jù)庫及其管理軟件組成的系統(tǒng)。數(shù)據(jù)庫技術(shù)作為一種利用計(jì)算機(jī)處理能力進(jìn)行輔助管理數(shù)據(jù)的方法,其主要的工作范圍就是研究如何組織和存儲(chǔ)數(shù)據(jù),如何高效地獲取和處理數(shù)據(jù)。并且通過研究和分析數(shù)據(jù)庫的結(jié)構(gòu)、數(shù)據(jù)的存儲(chǔ)、數(shù)據(jù)庫管理以及應(yīng)用的基本理論和實(shí)現(xiàn)方法以此來實(shí)現(xiàn)對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行處理、分析和理解?,F(xiàn)如今多數(shù)事務(wù)處理系統(tǒng)都是在數(shù)據(jù)庫系統(tǒng)環(huán)境下使用數(shù)據(jù)庫語言例如dBASE,F(xiàn)oxbase, Foxpro,C#等。c#是2006年微軟公司發(fā)布的一種新的編程語言。c#語言定義主要是從C和C++繼承而來的且是多種語言的混合體,因此它像Java一樣語法簡潔,像VB6一樣使用簡單,像C++一樣功能強(qiáng)大和靈活。.NET 3.5為C#編程語言增加了實(shí)用支持強(qiáng)類型的查詢,可用于和各種形式的數(shù)據(jù)進(jìn)行交互。我們使用數(shù)據(jù)庫語言為事務(wù)管理系統(tǒng)建庫,然后用C#語言實(shí)現(xiàn)對數(shù)據(jù)庫的管理。本文以用C#語言處理一數(shù)據(jù)文件為例,說明C#語言在數(shù)據(jù)庫中的應(yīng)用。

        1 數(shù)據(jù)庫文件的存儲(chǔ)格式

        用C#語言管理數(shù)據(jù)庫,主要的工作就是用C#語言直接讀取數(shù)據(jù)庫文件中的數(shù)據(jù)。這里以SQLite數(shù)據(jù)庫文件為例,介紹數(shù)據(jù)庫文件的結(jié)構(gòu).SQLite有3類數(shù)據(jù)庫。除內(nèi)存數(shù)據(jù)庫外,SQLite把每個(gè)數(shù)據(jù)庫(main或temp)都存儲(chǔ)到一個(gè)單獨(dú)的文件中。SQLite數(shù)據(jù)庫文件由固定大小的“頁(page)”組成。頁的大小可以在512到32768的2的指數(shù),默認(rèn)大小為1KB。頁大小可以在數(shù)據(jù)庫剛剛創(chuàng)建時(shí)設(shè)置,一旦創(chuàng)建了數(shù)據(jù)庫對象之后,這個(gè)值就不能再改變了。

        數(shù)據(jù)庫中所有的頁從1開始順序編號。在具體的實(shí)現(xiàn)中,頁號用4字節(jié)來表示。文件的第1個(gè)頁被稱為page 1,第2個(gè)頁被稱為page 2,依此類推。編號為0的頁表示“無此頁”。

        頁的類型可以是:Btree頁、空閑頁或溢出頁。一個(gè)數(shù)據(jù)庫文件中可能沒有空閑頁或溢出頁,但必然有Btree頁。庫中第一個(gè)頁(page 1)永遠(yuǎn)是Btree頁。Page 1的前100個(gè)字節(jié)是一個(gè)對數(shù)據(jù)庫文件進(jìn)行描述的“文件頭”。它包括數(shù)據(jù)庫的版本、格式的版本、頁大小、編碼等所有創(chuàng)建數(shù)據(jù)庫時(shí)設(shè)置的永久性參數(shù)。關(guān)于這個(gè)特殊文件頭的文檔在btreeInt.h中,具體格式如下:

        偏移量 大小 說明0 16 頭字符串,如果不改源程序,此字符串永遠(yuǎn)是"SQLite format 3"。16 2 頁大?。ㄒ宰止?jié)為單位)。18 1文件格式版本(寫)。對于SQLite的當(dāng)前版本,此值為1。如果該值大于1,表示文件為只讀。SQLite將來版本對此域的規(guī)定可能改變。19 1文件格式版本(讀)。對于SQLite的當(dāng)前版本,此值為1。如果該值大于1,SQLite認(rèn)為文件格式錯(cuò),拒絕打開此文件。SQLite將來版本對此域的規(guī)定可能改變。20 1 每頁尾部保留空間的大小。(默認(rèn)為0)

        從偏移22開始的字節(jié)元數(shù)據(jù)變量在btreeInt.h中的定義在此不加描述。

        用UltraEdit打 開 文 件foods_test.db,page 1在0X0000~0X03FF。其中文件頭內(nèi)容如下(深藍(lán)色部分):

        前16個(gè)字節(jié)為頭字符串,程序中固定設(shè)為”SQLite format 3”。

        0X0400 :頁大小,0X0400=1024字節(jié)。

        0X01:文件格式版本(寫),值為1。

        0X01:文件格式版本(讀),值為1。

        0X40:Btree內(nèi)部頁中一個(gè)單元最多能夠使用的空間。0X40=64,即25%。

        0X20:Btree內(nèi)部頁中一個(gè)單元使用空間的最小值。0X20=32,即12.5%。

        0X20:Btree葉子頁中一個(gè)單元使用空間的最小值。0X20=32,即12.5%。

        0X00000003 :文件修改計(jì)數(shù),現(xiàn)在已經(jīng)修改了3次,分別是1次創(chuàng)建和兩次插入。

        從0X20開始的4個(gè)字節(jié):空閑頁鏈表首指針。當(dāng)前值為0,表示該鏈表為空。

        從0X24開始的4個(gè)字節(jié):文件內(nèi)空閑頁的數(shù)量。當(dāng)前值為0。

        從0X28開始的4個(gè)字節(jié):Schema version。當(dāng)前值為0X00000001。以后,每次sqlite_master表被修改時(shí),此值+1。

        從0X38開始的4個(gè)字節(jié):采用的字符編碼。此處為0X00000001,表示采用的是UTF-8編碼。在SQLite文件中,所有的整數(shù)都采用大端格式,即高位字節(jié)在前。

        2 程序代碼及簡要說明

        //通過DataSet來讀取數(shù)據(jù):

        //創(chuàng)建和數(shù)據(jù)庫的連接

        OracleConnection oraCon=new OracleConnection(“user id=112;data source=wmatech;password=414”);

        //新建一個(gè)DataAdapter用于填充DataSet

        OracleDataAdapter oraDap=new OracleDataAdapter(“select *from actor”,oraCon);

        DataSet ds=new DataSet();

        //填充DataSet

        oraDap.Fill(ds);

        DataTable _table=ds.Tables[0];

        //查看表中數(shù)據(jù)的列數(shù)

        int count=_table.Rows.Count;

        DataGrid1.DataSource=_table;

        DataGrid1.DataBind();

        //通過DataReader來讀取數(shù)據(jù):

        OracleConnection oraCon=new OracleConnection(“user id=112;data source=wmatech;password=414”);

        //新建一個(gè)對數(shù)據(jù)庫操作的實(shí)例

        OracleCommand oraCmd=new

        OracleCommand(“select * from actor”,oraCon);

        oraCon.Open();

        OracleDataReader oraRD= oraCmd.ExecuteReader();

        string szHtml=””;

        while (oraRD.Read())

        {

        szHtml+=oraRD[0].ToString()+”  ;

        “+oraRD[1].ToString()+” ;

        “+oraRD[2].ToString()+”
        ”;

        }

        oraRD.Close();

        3 結(jié)論

        使用C#語言進(jìn)行數(shù)據(jù)庫操作可方便快捷的進(jìn)行數(shù)據(jù)的讀取,效率很高。利用本文介紹的方法可對數(shù)據(jù)庫進(jìn)行多種形式的管理,例如實(shí)現(xiàn)對數(shù)據(jù)庫文件的壓縮、展開,顯示數(shù)據(jù)庫結(jié)構(gòu),輸出記錄等操作,這有利于提高程序的可移植性。

        猜你喜歡
        數(shù)據(jù)庫語言管理
        棗前期管理再好,后期管不好,前功盡棄
        語言是刀
        文苑(2020年4期)2020-05-30 12:35:30
        讓語言描寫搖曳多姿
        數(shù)據(jù)庫
        累積動(dòng)態(tài)分析下的同聲傳譯語言壓縮
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        “這下管理創(chuàng)新了!等7則
        雜文月刊(2016年1期)2016-02-11 10:35:51
        我有我語言
        久久久久久人妻精品一区百度网盘 | 亚洲成a∨人片在无码2023| 在线视频你懂的国产福利| 亚洲视频天堂| 馬与人黃色毛片一部| 91av视频在线| 日本女优中文字幕四季视频网站| 91九色人妻精品一区二区三区| 日韩人妻熟女中文字幕a美景之屋| 亚洲第一av导航av尤物| 欧美视频九九一区二区| 日本久久黄色高清视频| 精品人妻系列无码人妻漫画| 国产狂喷潮在线观看| 欧美视频二区欧美影视| 绿帽人妻被插出白浆免费观看| 国产精品国产自产自拍高清av| 免费看黑人男阳茎进女阳道视频| 在线免费观看国产精品| 亚洲国产精品综合久久20| 国产免费网站在线观看不卡| 色欲网天天无码av| 欧美丰满大爆乳波霸奶水多| 国产精品每日更新在线观看 | 亚洲丁香五月天缴情综合| 国产激情视频白浆免费| 亚洲av精品一区二区三| 亚洲精品中文字幕一二三| 免费a级毛片在线播放不收费| 女人扒开屁股爽桶30分钟| 亚州无线国产2021| 国产成人av三级三级三级在线 | 久久99免费精品国产| 免费无码又爽又刺激网站直播| 粗了大了 整进去好爽视频| 亚洲美女性生活一级片| 国产偷国产偷亚洲高清视频| 国产精品18久久久久久麻辣| 国产真实乱XXXⅩ视频| 亚洲精品在线一区二区三区| 国产一区二区三区激情视频|