<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuān)題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題3
        問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        ActiveX數(shù)據(jù)對(duì)象之事務(wù)控制在VB和DELPHI中的應(yīng)用

        來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 14:08:42
        文檔

        ActiveX數(shù)據(jù)對(duì)象之事務(wù)控制在VB和DELPHI中的應(yīng)用

        ActiveX數(shù)據(jù)對(duì)象之事務(wù)控制在VB和DELPHI中的應(yīng)用:摘要 事務(wù)控制是數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中的關(guān)鍵技術(shù)之一,本文一開(kāi)始先對(duì)事務(wù)控制的概念以及微軟的 ActiveX 數(shù)據(jù)對(duì)象( ADO )的事務(wù)控制做了簡(jiǎn)介,之后以一個(gè)具體的實(shí)例給出ActiveX數(shù)據(jù)對(duì)象的事務(wù)控制在VB和DELPHI中的使用方法。 關(guān)鍵詞 ActiveX數(shù)據(jù)對(duì)象(A
        推薦度:
        導(dǎo)讀ActiveX數(shù)據(jù)對(duì)象之事務(wù)控制在VB和DELPHI中的應(yīng)用:摘要 事務(wù)控制是數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中的關(guān)鍵技術(shù)之一,本文一開(kāi)始先對(duì)事務(wù)控制的概念以及微軟的 ActiveX 數(shù)據(jù)對(duì)象( ADO )的事務(wù)控制做了簡(jiǎn)介,之后以一個(gè)具體的實(shí)例給出ActiveX數(shù)據(jù)對(duì)象的事務(wù)控制在VB和DELPHI中的使用方法。 關(guān)鍵詞 ActiveX數(shù)據(jù)對(duì)象(A

        摘要 事務(wù)控制是數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中的關(guān)鍵技術(shù)之一,本文一開(kāi)始先對(duì)事務(wù)控制的概念以及微軟的 ActiveX 數(shù)據(jù)對(duì)象( ADO )的事務(wù)控制做了簡(jiǎn)介,之后以一個(gè)具體的實(shí)例給出ActiveX數(shù)據(jù)對(duì)象的事務(wù)控制在VB和DELPHI中的使用方法。 關(guān)鍵詞 ActiveX數(shù)據(jù)對(duì)象(ADO);事務(wù)

        摘要 事務(wù)控制是數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中的關(guān)鍵技術(shù)之一,本文一開(kāi)始先對(duì)事務(wù)控制的概念以及微軟的 ActiveX數(shù)據(jù)對(duì)象(ADO)的事務(wù)控制做了簡(jiǎn)介,之后以一個(gè)具體的實(shí)例給出ActiveX數(shù)據(jù)對(duì)象的事務(wù)控制在VB和DELPHI中的使用方法。

        關(guān)鍵詞 ActiveX數(shù)據(jù)對(duì)象(ADO);事務(wù)控制;VB;DELPHI

        1 引言

        在數(shù)據(jù)庫(kù)的應(yīng)用中,有時(shí)會(huì)遇到以獨(dú)立單元保存或取消對(duì)源數(shù)據(jù)所做的一系列更改。例如在貨幣轉(zhuǎn)帳時(shí),必須從帳戶(hù)中減去某個(gè)數(shù)額并將其對(duì)等數(shù)額添加到另一個(gè)帳戶(hù)。無(wú)論其中的哪個(gè)更新失敗,都將導(dǎo)致帳戶(hù)收支不平衡。再如,在進(jìn)行商品庫(kù)存管理時(shí),當(dāng)發(fā)生購(gòu)進(jìn)或售出商品時(shí),一方面要在商品的銷(xiāo)售表中保存該商品的銷(xiāo)售記錄,另一方面,還要在商品庫(kù)存中對(duì)該種商品的庫(kù)存進(jìn)行調(diào)整。無(wú)論其中的哪個(gè)更新失敗,都將導(dǎo)致商品收支不平衡。在這種情況下,必須通過(guò)事務(wù)控制來(lái)保證操作的一致性。

        2 ActiveX數(shù)據(jù)對(duì)象事務(wù)控制

        2.1 ActiveX數(shù)據(jù)對(duì)象(ADO)簡(jiǎn)介

        Microsoft ActiveX Data Objects(ADO)是Microsoft開(kāi)發(fā)的數(shù)據(jù)訪(fǎng)問(wèn)對(duì)象,它可使用戶(hù)通過(guò)何OLE DB Provider 訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)服務(wù)器中的數(shù)據(jù)。ADO趨向于提供一種穩(wěn)定的接口,來(lái)使用戶(hù)利用多種不同的數(shù)據(jù)源包括從非關(guān)系型數(shù)據(jù)源(包括文本文件、電子郵件等)到ODBC關(guān)系型數(shù)據(jù)庫(kù)。所以它是對(duì)ODBC的擴(kuò)充。

        ADO的主要優(yōu)點(diǎn)是使用簡(jiǎn)單,快速,內(nèi)存消耗量低,磁盤(pán)的占有量少,在關(guān)鍵

        情況下網(wǎng)絡(luò)的通信量最少,前端與數(shù)據(jù)存儲(chǔ)之間的層次最少,是一種輕便質(zhì)優(yōu)的接口。

        2.2 ActiveX數(shù)據(jù)對(duì)象(ADO)事務(wù)控制

        BeginTrans、CommitTrans和RollbackTrans是ADOConnection部件供數(shù)據(jù)庫(kù)應(yīng)用程序在運(yùn)行時(shí)調(diào)用開(kāi)始事務(wù)、控制并保存或放棄所做數(shù)據(jù)修改的方法。

        l BeginTrans 開(kāi)始一個(gè)事務(wù)

        當(dāng)開(kāi)始一個(gè)事務(wù)時(shí),后來(lái)所有讀寫(xiě)數(shù)據(jù)庫(kù)的操作都發(fā)生在這次事務(wù)的環(huán)境中,直到本次事務(wù)通過(guò)調(diào)用CommitTrans或RollbackTrans來(lái)顯示的終止為止。還以商品管理為例,當(dāng)購(gòu)進(jìn)或售出商品時(shí),在商品數(shù)據(jù)庫(kù)記錄上必須發(fā)生兩個(gè)修改:

          A、購(gòu)進(jìn)或銷(xiāo)售的記錄必須記錄在銷(xiāo)售表中;

          B、在商品庫(kù)存中對(duì)該類(lèi)商品的庫(kù)存進(jìn)行調(diào)整。

                如果出于某種原因,其中的一個(gè)操作不能被完成,那么任何一個(gè)操作都不應(yīng)該發(fā)生。因?yàn)檫@些操作是相關(guān)的,它們發(fā)生在同一個(gè)事務(wù)中。

        l RollbackTrans 取消事務(wù)中的修改并終止當(dāng)前事務(wù)

                為了取消對(duì)數(shù)據(jù)庫(kù)所做的修改,必須用RolllbackTrans方法返回一個(gè)事務(wù)。RollbackTrans方法取消當(dāng)前事務(wù)中對(duì)數(shù)據(jù)庫(kù)所做的修改并終止當(dāng)前事務(wù)。

        l CommitTrans  提交一個(gè)事務(wù)

                為了做永久性的修改,必須CommitTrans方法提交事務(wù),這將保存用戶(hù)對(duì)數(shù)據(jù)庫(kù)所做的修改并結(jié)束當(dāng)前事務(wù)。

        在VB 6.0中,ADO成為它與各種數(shù)據(jù)源的缺省接口,ADO數(shù)據(jù)訪(fǎng)問(wèn)方式是現(xiàn)在和未來(lái)VB乃至Microsoft的各種應(yīng)用軟件進(jìn)行數(shù)據(jù)訪(fǎng)問(wèn)與應(yīng)用的主流。

        而在DELPHI中,基于DBE(Borland Database Engine的簡(jiǎn)稱(chēng),即Borland數(shù)據(jù)庫(kù)引擎)的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)方式是DELPHI的標(biāo)準(zhǔn)的、傳統(tǒng)的方式;基于ADO技術(shù)的數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)方式,這是DELPHI 5.0新增的功能。DELPHI 5.0 提供了一整套ADO組件,封裝了ADO框架的所有功能。

        下面以商品庫(kù)存管理來(lái)分別闡明ADOConnection的事務(wù)控制在VB和DELPHI中的應(yīng)用。

        3 商品庫(kù)存管理中的數(shù)據(jù)庫(kù)

        該數(shù)據(jù)庫(kù)GoodsManagement用Microsoft的SQL Server創(chuàng)建,包括三個(gè)用戶(hù)數(shù)據(jù)表,用戶(hù)表Users、庫(kù)存表Goods、進(jìn)銷(xiāo)表InOutGoods,每個(gè)數(shù)據(jù)表的表結(jié)構(gòu)如下:

        l 用戶(hù)表Users

        字段名        數(shù)據(jù)類(lèi)型        長(zhǎng)度

        用戶(hù)名        VARCHAR 8

        用戶(hù)類(lèi)型 VARCHAR 10

        用戶(hù)口令 VARCHAR 6

            主鍵為: 用戶(hù)名

            注:

              用戶(hù)類(lèi)型有一般用戶(hù)和系統(tǒng)管理員兩種,其中一般用戶(hù)只能進(jìn)行銷(xiāo)售商品,碉系統(tǒng)管理員還可以增加或刪除用戶(hù),由于本文章只是闡述ADOConnection的事務(wù)控制,所以也就涉及到用戶(hù)管理。

        l 庫(kù)存表Goods

        字段名        數(shù)據(jù)類(lèi)型        長(zhǎng)度

        商品名        VARCHAR 14

        商品描述 VARCHAR 16

        商品庫(kù)存 SMALLINT 2

        主鍵為:商品名

        l 進(jìn)銷(xiāo)表InOutGoods

        字段名        數(shù)據(jù)類(lèi)型        長(zhǎng)度

        進(jìn)銷(xiāo) VARCHAR 2

        商品名稱(chēng) VARCHAR 14

        商品數(shù)量 SMALLINT 2

        商品價(jià)格 MONEY 8

        操作人員 VARCHAR 8

        操作時(shí)間 DATETIME 8

        主鍵為:(操作人員,操作時(shí)間)

            外鍵為:操作人員,對(duì)應(yīng)于Users表的用戶(hù)名

        4 ADO事務(wù)控制應(yīng)用〈〈商品庫(kù)存管理〉〉在VB中的實(shí)現(xiàn)

        4.1 數(shù)據(jù)環(huán)境設(shè)計(jì)器

                   

        \

        圖1 數(shù)據(jù)環(huán)境設(shè)計(jì)器

        數(shù)據(jù)環(huán)境設(shè)計(jì)器中主要控件的屬性如下:

        控件名        控件類(lèi)型        重要屬性設(shè)置

        CN ADOConnection對(duì)象   ConnectSource如下:

        Provider=SQLOLEDB.1;Password=SA;Persist Security Info=True;User ID=sa;

        Initial Catalog=GoodsManagement

          Goods ADOCommand對(duì)象   ConnectionName:CN 

        CommandText:Goods

        InOutGoods ADOCommand對(duì)象 ConnectionName:CN  

        CommandText:Goods

        StrSQL ADOCommand對(duì)象 ConnectionName:CN 

        CommandText:Goods

        4.2 進(jìn)庫(kù)管理模塊的代碼 

        下面就以其中的一個(gè)程序段“進(jìn)庫(kù)管理”來(lái)說(shuō)明ADO數(shù)據(jù)對(duì)象如何實(shí)現(xiàn)事務(wù)管理。

         Dim intNum1, intNum2 As Integer
        
        ?
        
          ‘開(kāi)始一個(gè)事務(wù)
        
        DE.Cn.BeginTrans
        
        With DE.rsInOutGoods
        
        ‘寫(xiě)入購(gòu)進(jìn)商品的記錄
        
        .AddNew
        
        .Fields(0).Value = "進(jìn)"
        
        .Fields(1).Value = TxtName.Text
        
        .Fields(2).Value = CInt(TxtNumber.Text)
        
        .Fields(3).Value = CInt(TxtPrice.Text)
        
        .Fields(4).Value = G_userName
        
        .Fields(5).Value = CStr(Now)
        
        .   .Update
        
        End With
        
        If DE.rsStrSQL.State = adStateOpen Then
        
        DE.rsStrSQL.Close
        
        End If

        ‘求進(jìn)銷(xiāo)表中商品名為T(mén)xtNumber.Text且為進(jìn)的所有記錄的進(jìn)貨數(shù)量之和

        With DE.rsStrSQL
        
        .Open "select sum(商品數(shù)量) from InOutGoods where 進(jìn)銷(xiāo)='進(jìn)'" & " and 商品名稱(chēng)='" & TxtName.Text & "'"
        
        intNum1 = .Fields(0).Value
        
        .Close
        
        End With

        ‘求進(jìn)銷(xiāo)表中商品名為T(mén)xtName.Text且為銷(xiāo)的所有記錄的進(jìn)貨數(shù)量之和

        With DE.rsStrSQL

        .Open "select sum(商品數(shù)量) from InOutGoods where 進(jìn)銷(xiāo)='銷(xiāo)'" & " and

        商品名稱(chēng)='" & TxtName.Text & "'"

        If .RecordCount = 1 And IsNull(.Fields(0).Value) Then
        
        intNum2 = 0
        
        Else
        
        intNum2 = .Fields(0)
        
        End If
        
        .Close
        
        End With

          ‘調(diào)整商品庫(kù)存中該商品的庫(kù)存量

        DE.Cn.Execute "update Goods set 商品庫(kù)存=" & (intNum1 - intNum2) & " where 商品名='" & TxtName.Text & "'"

         ‘向數(shù)據(jù)庫(kù)提交事務(wù)

        D【本文來(lái)自鴻網(wǎng)互聯(lián) (http://www.68idc.cn)】E.Cn.CommitTrans  

        ?

        5 ADO事務(wù)控制應(yīng)用〈〈商品庫(kù)存管理〉〉在DELPHI中的實(shí)現(xiàn)

        5.1 系統(tǒng)中的數(shù)據(jù)模塊

        \

        數(shù)據(jù)模塊窗體主要控件的屬性如下:

        控件名        控件類(lèi)型        重要屬性設(shè)置

        ADOCn       ADOConnection對(duì)象   ConnectSource :(同前)

          ADODatasetGoods 數(shù)據(jù)集部件ADODataset   ConnectionName:ADOCN  

        CommandText:Goods

        ADODatasetInOutGoods 數(shù)據(jù)集部件ADODataset ConnectionName:ADOCN  

        CommandText:Goods

        ADODataset1 數(shù)據(jù)集部件ADODataset ConnectionName:ADOCN  

        CommandText:Goods

        DataSourceGoods  DataSource控件   Dataset:ADODatasetGoods

        DataSourceInOutGoods  DataSource控件 Dataset:ADODatasetInOutGoods

        5.2 進(jìn)庫(kù)管理模塊的代碼

        下面就以其中的一個(gè)程序段“進(jìn)庫(kù)管理”來(lái)說(shuō)明ADO數(shù)據(jù)對(duì)象如何實(shí)現(xiàn)事務(wù)管理。

        var
        
        strSQL:string;
        
        intNum1,intNum2,intRecordsAffected:integer;
        
        begin
        
        ?
        
        //啟動(dòng)事務(wù)控制
        
        DM.ADOCn.BeginTrans;
        
        //向進(jìn)銷(xiāo)表插入一條記錄
        
        with DM.ADODataSetInOutGoods do begin
        
          insert;
        
          fields[0].Value:='進(jìn)';
        
        fields[1].Value:= editName.text;
        
        fields[2].AsString:=editNumber.text;
        
        fields[3].AsString:=editPrice.text;
        
        fields[4].Value:=G_UserName;
        
        fields[5].AsString :=DateTimeToStr(now);
        
        Post;
        
        end;
        
        //求進(jìn)銷(xiāo)表中商品名為editName.text且為進(jìn)的所有記錄的進(jìn)貨數(shù)量之和
        
        strSQL:='select sum(商品數(shù)量) from InOutGoods where 進(jìn)銷(xiāo)=''進(jìn)''
        
        and 商品名稱(chēng)='''+editName.text+'''';
        
        with DM.ADODataSet1 do begin
        
        Close;
        
        CommandText:=strSQL;
        
        Open;
        
        end;
        
        intNum1:=DM.ADODataSet1.Fields[0].Value ;
        
        //求進(jìn)銷(xiāo)表中商品名為editName.text且為銷(xiāo)的所有記錄的進(jìn)貨數(shù)量之和
        
        strSQL:='select sum(商品數(shù)量) from InOutGoods where 進(jìn)銷(xiāo)=''銷(xiāo)''
        
        and 商品名稱(chēng)='''+editName.text+'''';
        
        with DM.ADODataSet1 do begin
        
        Close;
        
        CommandText:=strSQL;
        
        Open;
        
        end;
        
        if (DM.ADODataSet1.RecordCount=1) and
        
        DM.ADODataSet1.Fields[0].Value=null) then
        
        IntNum2:=0
        
        else
        
        intNum2:=DM.ADODataSet1.Fields[0].value;
        
        strSQL:='update Goods set 商品庫(kù)存='+intToStr(intNum1-intNum2)
        
        +' where 商品名='''+editName.Text+'''';
        
        DM.ADOCn.Execute (strSQL,intRecordsAffected,[eoExecuteNoRecords]) ;
        
        DM.ADOCn.Execute(strSQL,intRecordsAffected,[eoExecuteNoRecords]) ;
        
        DM.ADOCn.CommitTrans ;
        
        ?

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        ActiveX數(shù)據(jù)對(duì)象之事務(wù)控制在VB和DELPHI中的應(yīng)用

        ActiveX數(shù)據(jù)對(duì)象之事務(wù)控制在VB和DELPHI中的應(yīng)用:摘要 事務(wù)控制是數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中的關(guān)鍵技術(shù)之一,本文一開(kāi)始先對(duì)事務(wù)控制的概念以及微軟的 ActiveX 數(shù)據(jù)對(duì)象( ADO )的事務(wù)控制做了簡(jiǎn)介,之后以一個(gè)具體的實(shí)例給出ActiveX數(shù)據(jù)對(duì)象的事務(wù)控制在VB和DELPHI中的使用方法。 關(guān)鍵詞 ActiveX數(shù)據(jù)對(duì)象(A
        推薦度:
        標(biāo)簽: 控制 中的 數(shù)據(jù)
        • 熱門(mén)焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門(mén)推薦

        專(zhuān)題
        Top
        主站蜘蛛池模板: 一二三四在线观看免费高清中文在线观看 | 未满十八私人高清免费影院| 亚洲AV无码一区二区乱子仑| 人妖系列免费网站观看| 日韩免费视频一区| 久久91亚洲人成电影网站| 99999久久久久久亚洲| 一边摸一边桶一边脱免费视频| 久视频精品免费观看99| 亚洲精品99久久久久中文字幕| 亚洲国产高清视频在线观看| 亚欧洲精品在线视频免费观看 | 亚洲欧洲国产日韩精品| 黄色a三级免费看| 日韩精品成人无码专区免费| 国产成人亚洲综合无码精品| a级在线观看免费| ZZIJZZIJ亚洲日本少妇JIZJIZ| 亚洲一线产品二线产品| 人妻无码久久一区二区三区免费| 亚洲人成网站在线观看青青| 一级特黄录像免费播放肥| 又爽又黄无遮挡高清免费视频| 亚洲伦另类中文字幕| 18以下岁毛片在免费播放| 亚洲一本到无码av中文字幕| 午夜亚洲国产成人不卡在线| 亚洲AV无码成人精品区日韩| 亚洲精品无码激情AV| 日本免费一区二区三区| 亚洲熟妇无码AV| 亚洲综合精品香蕉久久网| 2022国内精品免费福利视频| 亚洲av无码专区在线播放| 另类免费视频一区二区在线观看 | 国产亚洲福利一区二区免费看| 亚洲精品第一国产综合野| 亚洲国产成人久久精品99 | 黄页免费在线观看| 亚洲真人无码永久在线观看| 国产成人亚洲精品91专区手机|