歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> 使用Perl連接Access數據庫詳解

使用Perl連接Access數據庫詳解

日期:2017/3/6 15:50:10   编辑:關於Unix
前題是必須安裝好activeperl (505以上),以及MS Access 97 一. 安裝Win32-ODBC模塊 步驟1: 從TOOLS欄目中下載Win32-ODBC.zip,下載完後用winzip解開到一個temp目錄,共有三個文件: Readme Win32-ODBC.ppd Win32-ODBC.tar.gz 步驟2: 在DOS窗口下,temp目錄
  前題是必須安裝好activeperl (505以上),以及MS Aclearcase/" target="_blank" >ccess 97
  
  一. 安裝Win32-ODBC模塊
  步驟1:
  從TOOLS欄目中下載Win32-ODBC.zip,下載完後用winzip解開到一個temp目錄,共有三個文件:
  Readme
  Win32-ODBC.ppd
  Win32-ODBC.tar.gz
  步驟2:
  在DOS窗口下,temp目錄中運行下面的DOS命令:
  ppm install Win32-ODBC.ppd
  
  二. 准備測試數據庫(ACCESS)
  步驟1:
  啟動MS ACCESS,建立一個新空數據庫,命名為odbctest.mdb,保存在某一目錄中(記住路徑)。
  步驟2:
  然後新建一個表,建立三個字段:
  字段名稱 數據類型
  Name 字符,長度50
  Email 字符,長度50
  Age 數字,長整型
  
  將這個表保存為address(注意這個例子中,沒有用自動增加的ID).輸入若干記錄:
  Nighthawk [email protected] 20 1234567
  John [email protected] 24 0284393293
  kit [email protected] 18 3948932
  
  保存後,關閉數據庫文件。
  步驟3:
  打開控制面板中的 ODBC數據源(32位),在用戶DSN欄中,找到用戶數據源列表,選中名稱為“MS Access 97 Database”的一行,然後按“配置”鍵。
  在Database框中按"Select..",選擇步驟1.2中建立的數據庫文件odbctest.mdb,按OK即可。ODBC設置中的其它項目全部采用缺省設置,然後就是OK,確定,關閉對話窗口。
  
  三. 這時候,數據庫已經可以用了,我們來測試一下:
  #!/usr/bin/perl
  
  use Win32::ODBC;
  
  $DSN = "MS Access 97 Database";
  $DBase = "access.mdb";
  
  #連接數據庫
  
  if (!($db = new Win32::ODBC($DSN))){
  print "連接數據庫失敗.\n";
  exit();
  }
  else{
  print "連接數據庫成功 (連接號:", $db->Connection(), ")\n\n";
  }
  
  #數據庫中的表
  print "數據庫中的表:";
  @tables = $db->TableList;
  print @tables;
  print "\n";
  
  #選擇數據表
  if (! $db->Sql("SELECT * FROM [address] WHERE age>=20") ){
  
  @FieldNames = $db->FieldNames();
  
  $Cols = $#FieldNames + 1;
  
  #表中字段數
  print "表address字段數:$Cols\n";
  
  #字段列表
  for ($i = 0; $i < $Cols; $i++){
  print "$FieldNames[$i]\t";
  }
  print "\n";
  
  #列出年齡大於20的記錄
  while($db->FetchRow()) {
  @values = $db->Data();
  print @values;
  print "\n";
  }
  
  }
  
  ##### sql #########
  #添加記錄
  $sqlinsert = "INSERT INTO address VALUES ('Euler', 'euler\@21cn.com', 28, '021-345689')";
  #更新記錄
  $sqlupdate = "UPDATE address SET age = age+10 ";
  #刪除記錄
  $sqldelete = "DELETE FROM address WHERE name='jimtyan'";
  
  $rc = $db->Sql($sqlinsert);
  die qq(SQL 失敗 "$sqlinsert": ), $db->Error(), qq(\n) if $rc;
  
  $rc = $db->Sql($sqlupdate);
  die qq(SQL 失敗 "$sqlupdate": ), $db->Error(), qq(\n) if $rc;
  
  $rc = $db->Sql($sqldelete);
  die qq(SQL 失敗 "$sqldelete": ), $db->Error(), qq(\n) if $rc;
  
  #關閉鏈接
  $db->Close();
  
  進一步學習請訪問Win32-ODBC模塊作者主頁:http://www.roth.net/perl/odbc/

Copyright © Linux教程網 All Rights Reserved