[Perl] Win32::ODBCでExcelへ接続したい

[戻る]
どぼん [E-Mail] 2003/06/24(火) 22:03:43
いつも参考にさせて頂いてます。どぼんといいます。

Windows XP Pro + AnHTTPD + ActivePerlにて、ODBC登録されているExcelファイルの
読み出しを考えています。
以下のようなソースを作成しましたが、SQL実行時にエラーが返されます。
(Error message: "[Microsoft][ODBC Excel Driver] FROM 句の構文エラーです。")
FROM句にかかれているテーブル名は、ODBC経由で別のExcelで繋いで確認したものを
入れています(シート名に$がついたもの)。
SQLが実行できない理由がわからないので大変困っています。
どなたかご教示よろしくお願い致します。

--- Souce -------
#!/usr/bin/perluse strict;
use Win32::ODBC;
$DSN = "DSN=TEST_EXCEL;";
if (!($db = new Win32::ODBC($DSN))){
    print "Error connecting to $DSN\n";
    print "Error: " . Win32::ODBC::Error() . "\n";
    exit;
}
$SqlStatement = "SELECT size, name, bunrui FROM DATAS\$";
if ($db->Sql($SqlStatement)){
    print "SQL failed.\n";
    print "Error: " . $db->DumpError() . "\n";
    print "SQL: " . $SqlStatement . "\n";
    $db->Close();
    exit;
}
while($db->FetchRow()){
    undef %Data;
    %Data = $db->DataHash();
    print "%Data{'NAME'}\n";}
($qualifier, $owner, $name, $type) = $db->Catalog("", "", "%", "'TABLE'");
print "$name";
$db->Close();
-----------

dairygoods 2003/06/25(水) 17:05:02
ネットで探してみると、
SELECT * FROM "Sheet1$"
のように引用符で囲むみたいです。
#Perlでの例は見つかりませんでした。

古いスレッドには追加発言できません。