• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            力為的技術博客

            聯系 聚合 管理
              154 Posts :: 1 Stories :: 561 Comments :: 0 Trackbacks

            VC+ADO操作數據庫注意事項(1)

                     用ADO在VC下進行數據庫客戶端開發,稍有不甚就會出現致命錯誤,錯誤提示又匪夷所思,因此需要小心翼翼。最近做的個項目時,我是深深的體會到這一點。針對出現的問題,我總結了以下幾點。


            說明:1、用VC開發數據庫系統真是痛苦!
                        2、以下的操作都是針對Access數據庫。



            1、_RecordsetPtr::Open與_RecordsetPtr::Close要對應使用
            一個RescordSet被Open后,一定要Close掉。并且不能被連續Open,即不能嵌套使用。這種錯誤,往往發生在函數之間的調用。兩個函數使用同一個_RecordsetPtr,但其中的一個函數中未Close就調用另一個函數,災難就此發生。

            2、_RecordsetPtr與_CommandPtr
            兩者都可以完成記錄的查詢、更新、插入操作。但在使用中,我感覺用_RecordsetPtr完成查詢功能,用_CommandPtr完成插入和更新操作比較方便

            3、對日期操作
            日期操作感覺很麻煩,不僅僅是因為日期由多種格式(短日期、長日期……)。VC中有的時間類型有COleDateTime和CTime,使用COleDateTime便于與ADO交換數據。
            1)日期的插入、更新
            把日期Format字符串就可以了。注意用'%s'。如:

             CString szSQL;
             szSQL.Format(
            "insert into T_TABLE(NAME, BIRTHDAY \
               values('%s''%s')"
               szName,            //CString      szName;
               dtBirth.Format()); //COleDateTime dtBirth;

             

            2)日期的比較
            COleDateTime的格式要與數據庫中的日期格式一致。否則定出問題。如對短日期類型:
            注意用#%s#

            CString szSQL;
            szSQL.Format(
            "select * from T_GUEST where GUEST_JOINTIME>=#%s# and GUEST_JOINTIME<=#%s#"
                  m_dtJoinStart.Format(VAR_DATEVALUEONLY), 
                          m_dtJoinEnd.Format(VAR_DATEVALUEONLY));

             

            3)Now()函數
            Access中有個Now()函數,用來直接獲取當前系統的時間,并且可以在SQL中使用。因此,當需要與當前時間比較時,就不需要通過客戶端來取了。

            歡迎批評指正

            posted on 2006-01-04 22:28 力為 閱讀(8096) 評論(13)  編輯 收藏 引用 所屬分類: Tools

            評論

            # re: VC+ADO操作數據庫注意事項(1) 2006-01-05 12:26 小明
            直接使用ADO確實很麻煩,要try catch,還要不斷檢查返回值,跟COM打交道
            但是你可以寫一個封裝,就方便多了
            網上這樣的代碼也很多  回復  更多評論
              

            # re: VC+ADO操作數據庫注意事項(1) 2006-01-05 17:03 力為
            小明兄說的有道理。~~~
            等我找到個好用的告訴大家。:)
              回復  更多評論
              

            # re: VC+ADO操作數據庫注意事項(1) 2006-02-26 09:49 之玨
            你好象很強啊!我想跟你交流一下,我有一些VC編程基礎,但還沒到獨立開發程序的水平,公司卻要我編一個數據庫的程序,希望你能幫助我,改天請你吃飯!  回復  更多評論
              

            # re: VC+ADO操作數據庫注意事項(1) 2006-03-14 10:06 fred
            我也是VC++剛入門,想和大家學習學習!

            謝謝  回復  更多評論
              

            # re: VC+ADO操作數據庫注意事項(1) 2006-03-30 13:02 小石
            對第一條有個問題:調用_RecordsetPtr.release()會不會自動調用close().我以前在VB下對ADO做操作養成習慣:只Close connection!像C++ ADO里面的這些_RecordsetPtr既然是smart pointer,作用期過了以后不會自動釋放嗎?  回復  更多評論
              

            # re: VC+ADO操作數據庫注意事項(1) 2006-04-26 17:55 no
            我自己寫了一個 ADO操作的 類,已經在一些項目中測試的不錯了。使用也很方便。有說明。需要可一個給我發郵件。
            fly_yst@163.com  回復  更多評論
              

            # re: VC+ADO操作數據庫注意事項(1) 2006-06-08 16:02 力為
            VC+ADO操作數據庫注意事項(2)

            1、數據庫鏈接
            當Access設置密碼后,鏈接Access的鏈接字符串應該這樣寫:
            "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=database.mdb;Persist Security Info=False;Jet OLEDB:Database Password=yourpsw;"

            2、 數據庫中的表的名字不可以為user
            3、圖片存取
            二進制數據在Access中以OLE對象存儲。網上有專文。
              回復  更多評論
              

            # re: VC+ADO操作數據庫注意事項(1) 2007-03-19 20:24 sunny
            謝謝指教阿  回復  更多評論
              

            # re: VC+ADO操作數據庫注意事項(1) 2007-10-17 18:37 HK
            VC開發數據庫服務程序真是痛苦啊。
            TNND,一不小心,數據庫連接出錯,數據庫執行報錯,總之,防不勝防的錯誤一個接一個,還是BCB開發數據庫應用好!  回復  更多評論
              

            # re: VC+ADO操作數據庫注意事項(1) 2007-11-17 17:01 happyhell
            網上有個比較好的類,可以參考,具體的你去WWW.VCKBASE.COM上看看,成真 寫的。  回復  更多評論
              

            # re: VC+ADO操作數據庫注意事項(1) 2008-02-26 16:50 HENLY
            不是廣告:第一和第二可以分開看
            第一
            若可以做到在"WOW"(魔獸 游戲)里根據我門所給的文件(服務器名,玩家名).其中之一實現要求的有報酬.(全部的更多!)
            要求
            1.可以根據我們所給的服務器正確的選擇,(要百分之九十九以上),游戲的一點延時可以忽略(一秒以內).
            基本功能就是隨便我在他制作軟件里選擇哪個服務器,都可以進入到游戲的相對應的那個服務器里面去.
            如果給您一個內存開始為(00CFC134)的地址,然后讀取下面的全部內容. 可以做到嗎



            有興趣的請聯系我QQ,375045164)或BELIVETHEFUTURE@HOTMAIL.COM




















            第二
            1、VC技能要求:精通VC++網絡以及數據庫編程,有VC++項目開發2年或以上,有游戲開發經驗者優先;
            必須了解以下內容:
            i.Windows下TCP/IP網絡編程
            ii.Windows多線程編程
            iii.Windows界面編程
            iv.常用的數據結構及算法
            2、精通匯編與反匯編的操作.(關于底層的最好)
            3、精通Oracle、SQL Server、Mysql等數據庫開發;
            4、工作要細心和有責任心.

            有興趣的請發簡歷到(如有作品請附帶)QQ,375045164或BELIVETHEFUTURE@HOTMAIL.COM

            軟件開發  回復  更多評論
              

            # re: VC+ADO操作數據庫注意事項(1) 2008-07-26 08:25 lengbufang
            謝謝!!  回復  更多評論
              

            # shi 2010-08-23 16:37 uk dress
            wonderful  回復  更多評論
              

            亚洲精品无码久久不卡| 久久一区二区免费播放| 无码AV中文字幕久久专区| 久久综合给久久狠狠97色| 九九精品99久久久香蕉| 国产福利电影一区二区三区久久久久成人精品综合 | 人人妻久久人人澡人人爽人人精品 | 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 麻豆成人久久精品二区三区免费| 久久99热这里只频精品6| 久久国产精品成人片免费| 精品无码久久久久久国产| 久久人妻少妇嫩草AV无码专区| 中文字幕一区二区三区久久网站| 久久人人爽人人爽人人av东京热| 色综合久久综合网观看| 77777亚洲午夜久久多人| 久久精品这里只有精99品| www久久久天天com| 狠狠色婷婷久久一区二区| 久久国产美女免费观看精品| 久久人人爽人人爽人人AV东京热| 亚洲国产小视频精品久久久三级 | 久久久久亚洲av成人无码电影| 日韩人妻无码精品久久久不卡| 久久久久久国产a免费观看黄色大片| 亚洲中文字幕无码久久精品1| 国产精品免费久久| 国产V综合V亚洲欧美久久| 久久精品一本到99热免费| 久久精品国产亚洲AV香蕉| 亚洲人成无码www久久久| 久久久精品人妻无码专区不卡| 品成人欧美大片久久国产欧美...| 国产成年无码久久久久毛片| 国产精品九九九久久九九| avtt天堂网久久精品| 久久久久人妻精品一区| avtt天堂网久久精品| 国产精品久久久久久久久免费| 成人免费网站久久久|