Perlの下でAccessデータベースに接続する方法を教えます(回転)

2918 ワード

Perlの下でAccessデータベースに接続する方法を教えます
 
この文書では、Perlの下でAccessデータベースに接続する方法を説明します.
一.Win 32-ODBCモジュールの取り付け
手順1:
TOOLS欄からWin 32-ODBC.zipをダウンロードし、ダウンロードした後winzipで1つのtempディレクトリに解いて、全部で3つのファイルがあります:
Readme 
Win32-ODBC.ppd 
Win32-ODBC.tar.gz

手順2:
DOSウィンドウの下で、tempディレクトリで次のDOSコマンドを実行します:ppminstall Win 32-ODBC.ppd.
二.テスト用データベースの準備(Access)
手順1:
MS ACCESSを起動し、odbctest.mdbという名前の新しい空のデータベースを作成し、ディレクトリに保存します(パスを覚えてください).
手順2:
次に、テーブルを新規作成し、3つのフィールドを作成します.
               
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、OK、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', '[email protected]', 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();