使用 Python 和 DB2 Express-C 開發應用程序

發表于:2007-05-24來源:作者:點擊數: 標簽:python開發Express-Cdb2使用
Python 是一種非常強大的、通用的、高級的、 面向對象 的、動態類型的編程語言,它很容易閱讀和理解,用它編寫程序也很有意思。為了讓它更令人興奮,我們希望能夠將它連接到同樣強大而且價格低廉的 IBM DB2 核心引擎版本。DB2 Express-C 是一種可以用于 開發
Python 是一種非常強大的、通用的、高級的、面向對象的、動態類型的編程語言,它很容易閱讀和理解,用它編寫程序也很有意思。為了讓它更令人興奮,我們希望能夠將它連接到同樣強大而且價格低廉的 IBM® DB2® 核心引擎版本。DB2 Express-C 是一種可以用于開發和部署的免費數據服務器,這使我們能夠實現這個愿望。本文一步步地介紹使用 Python 連接并使用 DB2 Express-C 實例所需的所有獲取、安裝和配置步驟。

概述

下面是在本文中要執行的任務:

  • 獲取并安裝 Python
  • 獲取并安裝 DB2 Express-C
  • 創建示例數據庫
  • 使用 DB2 Control Center 查看關于數據庫的詳細信息
  • 使用 DB2 Command Line Processor 查看一些表內容
  • 為示例數據庫設置 Windows® ODBC Datasource
  • 獲取并安裝 Python mxODBC 包
  • 在 Python 腳本中使用 mxODBC 訪問數據庫

 





回頁首


首先,安裝 Python

Python 是一種容易閱讀、使用和學習的編程語言。這種語言有許多吸引人的好處,其中最重要的是容易閱讀。對于這種語言的初學者來說,最有意思的方面之一是空白(縮進)是有意義的。這意味著編譯器/解釋器對清單 1 中代碼段的解釋方式與人們的理解方式相同。


清單 1. 縮進是有意義的
            1| if ( a == b ) :
            2|   if ( c == d ) :
            3|     print 'both match'  # printed only when both comparisons are true
            4| else :
            5|   print 'a not equal b'
            

注意:行號只用于引用目的。

第 1 行上的 if 語句將比較變量 ab 的值。如果它們相等,則執行第 2 行上的語句。只有在變量 a 的值等于變量 b 變量 c 的值等于變量 d 的情況下,才會看到第 3 行生成的輸出。另一個 print 語句(第 5 行)只在 a 的值不等于 b 時執行,無論 c 和 d 的值是什么。

如果您還不熟悉 Python 語言,那么該考慮學學了。

表 1:安裝 Python

任務 說明 備注/結果
安裝 Python for Windows 最容易的方法是使用 ActiveState 站點 獲取 Python 并開始安裝
  1. ActivePython 頁面上選擇 Free Download 鏈接。
  2. (可選)填寫信息并單擊 Next 按鈕。
  3. 找到適當的下載映像(比如 “Windows/x86”)。
  4. 右擊鏈接并保存安裝可執行文件。
  5. 用最新的病毒檢查程序進行掃描。
  6. 在 Windows Explorer 中,雙擊保存的可執行文件(例如,ActivePython-2.4.3.12-win32-x86.msi)開始安裝。
將 Python 安裝到適當的位置,比如 C:\Python24。
檢驗 Python 安裝 打開一個新的命令提示,并輸入

python -V

應該會顯示已經安裝的程序的版本:

Python 2.4.3

如果犯了錯誤,忘了 -V 那么會看到 Python 解釋器的命令提示,而不是只看到版本號:
C:\>python
                        ActivePython 2.4.3 Build 12 (ActiveState Software Inc.) based on
                        Python 2.4.3 (#69, Apr 11 2006, 15:32:42) [MSC v.1310 32 bit (Intel)] on win32
                        Type "help", "copyright", "credits" or "license" for more information.
                        >>>
                        

您無意間啟動了 Python 解釋器??砂?Ctrl-Z <Enter> 退出解釋器。





回頁首


接下來將安裝 DB2 Express-C

DB2 Express-C 是 DB2 Universal Database Express Edition(DB2 Express)的一個版本,是一種可以用于開發和部署的免費數據服務器。由于在一個更小的包中提供了與 DB2 Express 相同的核心數據服務器特性、開發接口以及系統限制,DB2 Express-C 為開發和部署所有應用程序(包括 C/C++、Java、.NET、PHP 等等)提供了堅實的基礎。DB2 Express-C 可以用在 32 位或 64 位硬件上運行的 Linux® 和 Windows 上,系統最多有 2 個 CPU 和 4GB 的內存。

使用 DB2 Express-C 的許多原因是顯而易見的。其中比較重要的是:

  • 價格

    它是免費的。

  • 可伸縮性

    當需要額外的功能和特性時,可以快速輕松地升級到適合自己需要的 DB2 產品的付費版本。

  • 容易獲得(執行這些步驟甚至比列出它們還要容易):
    1. 將瀏覽器指向 DB2 Express-C 下載站點。
    2. 保存 Message Digest 5(MD5)簽名。
    3. 單擊 Download 鏈接。
    4. 如果需要,可進行注冊。
    5. 登錄。
    6. 檢查個人信息和設置。
    7. 查看并檢查許可協議。
    8. 選擇 I agree 復選框。
    9. 單擊 I confirm 按鈕。
    10. 選擇適合自己需要的下載技術,并單擊對應的 Download now 鏈接。
    11. 指定適當的目標位置。
    12. 使用保存的 Message Digest 簽名(參見上面的第 2 步)檢查接收到的映像的完整性。
    13. 使用可靠的反病毒程序檢查接收到的文件中是否有病毒。
  • 容易設置(注意:需要重新啟動系統才能完成產品的安裝):
    1. 將存檔文件展開成適當的安裝目錄結構。
    2. 使用 Windows Explorer 進入展開后的目錄結構(比如 db2exc_NT_x86)并找到 setup.exe。
    3. 雙擊 setup.exe 來執行它。
    4. 使用 “Installation Prerequisites” 選項檢查自己的環境是否適合這個產品。
    5. 使用 “Release Notes” 選項顯示關于產品的最新信息。
    6. 使用 “Install Product” 選項啟動安裝過程。
      • 單擊 Next 按鈕。會看到 “Preparing to Install” 進度指示屏,最終顯示 “Welcome to DB2 Setup wizard” 屏幕。單擊 Next。
      • 查看許可協議條款,選擇 accept... 單選按鈕并單擊 Next 按鈕。
      • 選擇適當的安裝類型(Typical、Compact 或 Custom)并單擊 Next 按鈕(建議采用 “Typical”)。
      • 指定適當的安裝目錄(例如,“C:\IBM\SQLLIB”)。
      • 選擇適當的管理帳號(例如,Local system account)并單擊 Next。
      • 保留 Configure DB2 instances 上的默認值并單擊 Next。
      • 查看 “Start copying files” 屏幕上的信息并單擊 Install 開始安裝。
      • 將顯示一個進度條,表示安裝的進度。
      • 當顯示 “Setup is complete” 對話框窗口時,單擊 Finish 按鈕。
      • 這時會提示重新啟動計算機來完成安裝。
  • 容易使用:

    重新啟動之后,應該會看到 “First Steps” 窗口:



    圖 1. First steps
    First steps

    1. 單擊 Check for Product Updates 來啟動 “Update Manager” 程序。
    2. 如果沒有可用的更新,可以關閉 “Update Manager” 程序。
    3. 選擇 Create Sample Database 選項將創建一個用于安裝檢驗過程的數據庫。

      圖 2. 創建示例數據庫
      創建示例數據庫

      數據庫創建步驟完成之后,單擊 OK 按鈕。
    4. 選擇 Work with Databases 選項將啟動 “Control Center”,可以使用它操作現有的數據庫(比如 Sample)。

      圖 3. 展開的 Control Center 視圖
      展開的 Control Center 視圖

    5. 進入 SAMPLE 數據庫并選擇 Tables 透視圖。選擇 DEPARTMENT 表將顯示這個表中的字段。

      圖 4. Department 表的細節
      Department 表的細節

    6. 打開 “Command Line Processor” 窗口使我們能夠顯示表的內容:

      Start -> IBM DB2 -> Command Line Tools -> Command Line Processor



                          db2 => connect to sample
                          Database Connection Information
                          Database server        = DB2/NT 8.2.4
                          SQL authorization ID   = GIBSON
                          Local database alias   = SAMPLE
                          db2 => select * from department
                          DEPTNO DEPTNAME                      MGRNO  ADMRDEPT LOCATION
                          ------ ----------------------------- ------ -------- ----------------
                          A00    SPIFFY COMPUTER SERVICE DIV.  000010 A00      -
                          B01    PLANNING                      000020 A00      -
                          C01    INFORMATION CENTER            000030 A00      -
                          D01    DEVELOPMENT CENTER            -      A00      -
                          D11    MANUFACTURING SYSTEMS         000060 D01      -
                          D21    ADMINISTRATION SYSTEMS        000070 D01      -
                          E01    SUPPORT SERVICES              000050 A00      -
                          E11    OPERATIONS                    000090 E01      -
                          E21    SOFTWARE SUPPORT              000100 E01      -
                          9 record(s) selected.
                          db2 => disconnect all
                          DB20000I  The SQL DISCONNECT command completed successfully.
                          db2 => quit
                          DB20000I  The QUIT command completed successfully.
                          

 





回頁首


Open Database Connectivity(ODBC)

Python 支持使用 Open Database Connectivity 應用程序編程接口(API)來訪問數據庫。為了讓 Python 程序能夠訪問數據庫,需要為數據庫定義一個 ODBC 數據源。幸運的是,Windows 支持 ODBC 驅動程序。我們需要做的只是配置一個允許連接 DB2 數據庫的 ODBC 數據源。

  1. 打開 Windows Control Panel。
  2. 選擇 Administrative Tools。
  3. 雙擊 Data Sources (ODBC) 項。
  4. 在 “User” 或 “System” DSN 選項卡上單擊 Add 按鈕。

    圖 5. 添加數據源
    添加數據源

  5. 選擇 IBM DB2 ODBC Driver 并單擊 Finish。

    圖 6. 創建數據源
    創建數據源

  6. 填寫表單并單擊 OK。

    圖 7. 添加 Sample 數據源
    添加 Sample 數據源

 





回頁首


mxODBC:ODBC 連接

差不多完成了。只需再做一點兒工作就能夠將 Python 程序連接到 DB2 數據庫。最后需要的是一個提供 ODBC 數據庫支持的 Python 模塊。

Python Web 站點上的 database topic section 包含使用 Python 訪問數據庫的信息。這個頁面上的 Database Modules 鏈接包含 mxODBC 包的引用,mxODBC 包是一個 “... 幾乎 100% 與 Python DB API 兼容的數據庫接口,可以通過 ODBC API 訪問。”

應該按照以下步驟獲得并安裝 mxODBC 包:

  1. eGenix.com 的 mx Extensions for Python 頁面上,單擊 Base Package 的適當版本的 Download 鏈接。
  2. 單擊 Windows installer, Python 2.4 鏈接。
  3. 保存下載的文件(例如 egenix-mx-base-2.0.6.win32-py2.4.exe)。
  4. 單擊瀏覽器的回退按鈕,然后選擇 Commercial Package 的 Download 鏈接。
  5. 保存下載的文件(例如 egenix-mx-commercial-2.0.7.win32-py2.4.exe)。
  6. 對下載的文件進行病毒掃描。
  7. 在成功的掃描之后,執行每個安裝程序。
在某些系統上,尤其是 Windows 2000 系統,在 mxODBC 包的安裝過程中可能會看到一個警告,它指出 MDAC SDK 軟件需要升級。如果是這種情況,可以采用以下過程從 Microsoft 安裝此代碼的最新版本。請注意,如果需要這樣做,那么需要重新啟動系統才能完全安裝這個更新。
  1. 訪問 Microsoft ODBC 頁面。
  2. 選擇 Downloads。
  3. 單擊 MDAC 2.8 鏈接。
  4. 單擊 Continue 按鈕。
  5. (可選)檢查系統并單擊 Continue 按鈕。
  6. 單擊 Download 按鈕。
  7. 在系統上保存可執行文件(例如,MDAC_TYP.exe)。
  8. 對保存的文件進行病毒掃描。
  9. 在成功的掃描之后,執行安裝程序。
  10. 閱讀許可協議,選擇 I accept... 并單擊 Next 按鈕。
  11. 單擊 Finish 按鈕開始安裝。
  12. 在安裝之后,重新啟動機器。

 





回頁首


將各個組件組合在一起

現在要讓前面的所有工作產生需要的效果。還可以使用 Python 交互式環境進行檢查。

打開一個命令提示,輸入下面顯示的命令:


            C:\>python
            ActivePython 2.4.3 Build 12 (ActiveState Software Inc.) based on
            Python 2.4.3 (#69, Apr 11 2006, 15:32:42) [MSC v.1310 32 bit (Intel)] on win32
            Type "help", "copyright", "credits" or "license" for more information.
            >>> import mx.ODBC
            >>> import mx.ODBC.Windows
            >>> db = mx.ODBC.Windows.DriverConnect( 'DSN=sample' )
            >>> cursor = db.cursor()
            >>> cursor.execute( 'select * from department' )
            >>> mx.ODBC.print_resultset( cursor )
            Column 1 | Column 2                       | Column 3 | Column 4 | Column 5
            --------------------------------------------------------------------------
            'A00'    | 'SPIFFY COMPUTER SERVICE DIV.' | '000010' | 'A00'    | None
            'B01'    | 'PLANNING'                     | '000020' | 'A00'    | None
            'C01'    | 'INFORMATION CENTER'           | '000030' | 'A00'    | None
            'D01'    | 'DEVELOPMENT CENTER'           | None     | 'A00'    | None
            'D11'    | 'MANUFACTURING SYSTEMS'        | '000060' | 'D01'    | None
            'D21'    | 'ADMINISTRATION SYSTEMS'       | '000070' | 'D01'    | None
            'E01'    | 'SUPPORT SERVICES'             | '000050' | 'A00'    | None
            'E11'    | 'OPERATIONS'                   | '000090' | 'E01'    | None
            'E21'    | 'SOFTWARE SUPPORT'             | '000100' | 'E01'    | None
            >>> cursor.close()
            >>> db.close()
            In order to exit from the interpreter, you
            need to press Ctrl-Z followed by <Enter>.
            >>> ^Z
            

確認代碼正常工作之后,可以將這些命令放進一個文本文件中(使用 .py 擴展名表示它是一個 Python 腳本)。然后可以直接執行這個腳本,您將看到相同的輸出:


            C:\> type DisplaySampleDept.py
            import mx.ODBC
            import mx.ODBC.Windows
            db = mx.ODBC.Windows.DriverConnect( 'DSN=sample' )
            cursor = db.cursor()
            cursor.execute( 'select * from department' )
            mx.ODBC.print_resultset( cursor )
            cursor.close()
            db.close()
            C:\> python DisplaySampleDept.py
            Column 1 | Column 2                       | Column 3 | Column 4 | Column 5
            --------------------------------------------------------------------------
            'A00'    | 'SPIFFY COMPUTER SERVICE DIV.' | '000010' | 'A00'    | None
            'B01'    | 'PLANNING'                     | '000020' | 'A00'    | None
            'C01'    | 'INFORMATION CENTER'           | '000030' | 'A00'    | None
            'D01'    | 'DEVELOPMENT CENTER'           | None     | 'A00'    | None
            'D11'    | 'MANUFACTURING SYSTEMS'        | '000060' | 'D01'    | None
            'D21'    | 'ADMINISTRATION SYSTEMS'       | '000070' | 'D01'    | None
            'E01'    | 'SUPPORT SERVICES'             | '000050' | 'A00'    | None
            'E11'    | 'OPERATIONS'                   | '000090' | 'E01'    | None
            'E21'    | 'SOFTWARE SUPPORT'             | '000100' | 'E01'    | None
            C:\>
            

既然已經安裝并運行了 Python 和 DB2 Express-C,就可以使用這個出色的組合快速輕松地開發一些令人驚異的應用程序。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97