• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    數據庫綜合開發實踐

    發布: 2008-10-14 11:43 | 作者: 馬磊、張萬里 | 來源: programfan.com  | 查看: 54次 | 進入軟件測試論壇討論

    領測軟件測試網 一套原來在Access上開發的桌面系統,網頁調閱使用ASP編程,數據維護系統使C++Builder編程。由于Access是一個桌面的共享型數據庫,所以在通用性和網絡開發方面都存在一些問題。因此,需要將該系統移植到服務器型的數據庫上。使系統既可以通過桌面軟件維護數據,又可以有大量用戶通過網頁調看數據(結果)。

      系統初始軟件為:Windows98第二版、Access97、C++Builder4.0、C++Builder5.0、MDAC(Microsoft Data Access Component 2.6中文版)。

      一、移植到Oracle的嘗試

      在機器上安裝Oracle 7.3桌面版,由于使用不熟練,所以選擇默認安裝,除選擇語言Simplified Chinese外,其他都選擇默認,一路裝下去,沒有問題,重新啟動系統。運行Net Easy Config,配置需要的數據庫別名,然后用SQL Net連接試驗,用戶名輸入system,密碼輸入manager,連接服務器注意,不要輸入服務器的地址,而是輸入剛才建立的別名,進去了。Ok!

      此時開始測試ODBC,建立ODBC數據源。此時,ODBC中有兩個有關Oracle的驅動,一個是Microsoft ODBC for Oracle,另一個是Oracle 7.3,這是該公司自己開發的驅動?墒窃趺催x擇驅動程序都不行,不是提示Oracle的驅動沒有安裝,就是說某個DLL文件找不到。真是說不行,就不行,行也不行。

      多次試驗均無效。

      檢查AUTOEXEC.BAT文件,其中有ORACLE的路徑。那末,問題會在什么地方呢?本著懷疑一切的態度,在MSDOS方式下隨手輸入了一個PATH命令,奇怪,里面居然沒有ORACLE的路徑!打開AUTOEXEC.BAT文件一琢磨,路徑是不是太長?把路徑中的其他目錄全都注釋掉,重啟系統,嘿!數據源可以建立了,而且兩個驅動程序哪個都能夠工作。原來由于系統中安裝了C++Builder的兩個版本,而該軟件的目錄又特別深,造成PATH環境變量的溢出,而在WINDOWS環境下啟動時的提示我們看不到,所以沒有發現這個問題,F在知道了,重新調整一下AUTOEXEC.BAT文件,保留一個C++Builder的路徑。以后得記住安裝C++Builder時最好自己指定一個目錄,這樣可以縮短路徑。這可是說行就行,不行也行。

      經過對Oracle的測試,發現將Access數據庫直接移植到Oracle數據庫中時,對文本字段(TEXT,MEMO)的遷移總有問題,且該系統使用、安裝過于復雜,對機器配置的要求也太高,而該系統需要安裝的用戶較多,且使用者水平參差不齊,所以決定改用現在在自由軟件界比較流行的免費數據庫系統MySQL。

      二、移植到MySQL的經歷

      1.該系統的安裝比較簡單,若認為自己沒有能力安裝該軟件的話,還可以從網絡上下載一個叫PHPTriad for windows的軟件,該軟件安裝時沒有任何選項,自動安裝好MySQL。(實際上,該軟件同時還安裝好了APACHE服務器、PHP語言解釋器,這正好符合將來把ASP的網頁換到PHP上去;另外,該軟件還同時安裝配置好了一個網頁數據庫維護工具PHPMyAdmin,PHPMyAdmin對于SQL語言不算熟的人來說管理數據庫極其方便。)

      2.再安裝MYODBC(即ODBC for MySQL,我的是2.5版本),注意下載該軟件時,要分清95版還是NT版的。安裝也很簡單,一路OK。好了,建立數據源work,填好IP地址,數據庫名填mymember(這時系統提供的數據庫),進行測試,不行?改用系統自動安裝的sample-mysql數據源連接,鏈上了。仔細檢查配置,沒有錯誤,為什么系統自己做的數據源可以用,我做的就不行呢?把自己建立的刪掉,把sample-mysql改名為work,再連接,嘿嘿,不行了! 哈哈,原來就出在名字上,在work后面加上-mysql,再連接,好了,原來myodbc要求它的數據源名稱必須以mysql結尾!

      解決了數據源,下面開始移植原來的Access數據庫。 移植工作比較簡單,打開Access數據庫,選中第一張表,從File菜單中選擇“另存為/導出”,選擇“另存為一個外部文件或數據庫”,選確定,在彈出的對話框中的“保存類型”下拉選單中選擇“ODBC數據庫”,又彈出一個“導出”的對話框,如果打算給該數據表改名的話,現在可以輸入新的名字,然后選擇確定,在彈出的“選擇數據源”對話框中點Machine Data Source(機器數據源),找到自己建立的work-MySQL數據源,按確定。此時會回到Access數據庫,如果數據表很大的話,狀態欄中會有一個導出的進度,否則,導出已經完成。

      導出成功后,通過PHPMYADMIN檢查導出的數據庫,結構、內容都正常。需要注意的是,如果數據表中用到了Access提供的ID(自動增量)字段的話,需要手工在目標數據庫中修改對應字段的屬性(這在PHPMyAdmin中很容易實現,找到該字段后點“改變”,在該字段的屬性最后一項“額外”的下拉選單中選擇auto_increment,然后保存。PHPMyAdmin的界面是英文的?其實只要在安裝有PHPMyAdmin的目錄Apache\Htdocs\PHPMyAdmin中找到config.inc.php文件,搜索require,把引號中的“english.inc.php”改成“chinese_gb.inc.php”,再去調用網頁中的PHPMyAdmin,嘻嘻,是不是變成中文了?其實chinese_gb.inc.php是一個文件名,就在該目錄下,你還可以把界面變成BIG5碼呢)。

      3.終于把移植的工作做完了,下面開始用C++BUILDER編程。對數據庫使用ADO來訪問。

      步驟如下:

      在ADO控件標簽中選ADOTable,在主窗口上先放置一個ADOTable1,然后點擊左邊對象觀察器(Object Inspector)中ConnectionString右邊的“…”圖標,選“Use Connection String”,點“Build”,在“Provider”標簽中選擇“Microsoft OLE DB Provider for ODBC Drivers”,點“Next>>”按鈕,在“specify the source of data”中選“use data source name”,從下拉選單中選擇數據源work-MySQL,點“Test Connection”,顯示連接成功,確定,OK,返回,在對象觀察器中Table Name屬性點下拉選單,選擇需要的數據表。

      再從Data Access控件標簽中選DataSource,在主窗口上放置一個DataSource1,在對象觀察器中DataSet屬性點下拉選單,選擇ADOTable1,下面進行界面輸出的布局,選擇“Data Controls”控件標簽中的DBEdit根據需要放置,并把DataSource屬性設置為DataSource1 ,DataField屬性設置為所需要的字段名。如此放置幾個字段,最后從“Data Controls”控件標簽中選“DBNavigator”放在窗口上。再ADOTable1的Active屬性改為true,咦,怎么有的字段顯示成(MEMO),先不管他,運行程序,輸入一些內容,點擊提交,怎么沒了?有的字段還縮短了,多試幾次,發現新輸入的內容不能超過原來的長度,那么原來是空的字段就永遠沒法輸入內容了。這是怎么回事?這種用法肯定沒有問題,以前在Access數據庫上就是這么用的。那么,就是MySQL的ODBC有問題,退出C++Builder,打開數據源的選項仔細分析,其中第一項vaaaa很象。把它選中,確定,重新運行C++Builder,再運行程序,一切OK。

      原來MySQL這樣的自由軟件,其ODBC選項很多,是為了適應各方面需要,不象微軟或其他的數據庫那樣默認值就可以用。這個選項可能是為了優化一些網絡上的應用,而把數據庫字段的默認值總是假設為最小狀態,從而造成這個問題。這可能也是自由軟件的一個小缺點吧。

      

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: 開發 實踐 數據庫

    31/3123>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>