Perl可以通过ADO组件读写数据库。
此程序在ActivePerl环境通过,是利用ADO组件读写,
而且只要asp/vb能操作的com组件,perl一样可以操作。
例一
use strict;
use Win32::OLE;
use Win32::OLE::Const 'Microsoft Excel';
...
...
my $adcnn=Win32::OLE->new('ADODB.Connection');
my $adrs=Win32::OLE->new('ADODB.Recordset');
my $sConn= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=".$filename.";Extended Properties=Excel 8.0";
#my $sConn= "Provider=SQLOLEDB.1;Password=ispasswd;Persist Security Info=True;User ID=lookmai;Initial Catalog=BOM_dev;Data Source=swr017;Connect Timeout=300"
$adcnn->Open($sConn);
my $sSQL = "SELECT * FROM [Sheet1\$]";
$adrs = $adcnn->Execute($sSQL);
while(not $adrs->eof)
{
my $AA=$adrs->fields(0)->value;
my $BB=$adrs->fields(1)->value;
my $CC=$adrs->fields(2)->value;
my $DD=$adrs->fields(3)->value;
...
...
$adrs->MoveNext;
}
$adcnn->close();
$adrs->close();
例二:'BOM_pogoods.Update'为本人用VB设计的COM组件
use strict;
use Win32::OLE;
my $checkSQL="SELECT count(*) total FROM Assembly_Bill WHERE Proj_Code='ttt'";
my $strSql="insert INTO Assembly_Bill values('ttt','AA','BB','CC','DD')";
my $Obj=Win32::OLE->new('BOM_pogoods.Update');
my $aa=$Obj->insertSQL($strSql,$checkSQL);
$Obj->close();
print $aa;