Perl下應當如何串連Access資料庫

來源:互聯網
上載者:User

首先需要安裝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 nighthawk@163.net 20 1234567

  John jt@163.net 24 0284393293

  kit kit@21cn.com 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(), ")nn";
  }
  #資料庫中的表
  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欄位數:$Colsn";
  #欄位列表
  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();



相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。