[#46647] RubyでWindowsの常駐サービスプログラムを作る方法 — kouichi_someya@...

はじめまして。

12 messages 2009/12/16
[#46649] Re: RubyでWindowsの常駐サービスプログラムを作る方法 — "U.Nakamura" <usa@...> 2009/12/17

こんにちは、なかむら(う)です。

[ruby-list:46665] Re: CGIでWIN32OLE.new("ADODB.Connection")が失敗する

From: 兼本周治@自宅 <shujikan@...>
Date: 2009-12-18 20:06:08 UTC
List: ruby-list #46665
To:arton様、皆様

兼本周治です。
早速の回答、ありがとうございます。

問題は一部解決しましたが、また同様の問題にぶちあたって
しまいました。

レジストリ、恐る恐るいじってみました。
(先に"C:\Program Files\Common Files\System\ado\msado15.dll"の
権限いじってみましたが、駄目でした)

レジストリを"ADODB.Connection"で検索すると、
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ADODB.Connection
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{00000514-0000-0010-8000-00AA006D2EA4}
等が見つかりました。(HKEY_CLASSES_ROOTからも見つかりましたが割愛)
このうち、下の項目配下"\InprocServer32"に
(既定):%CommonProgramFiles%\System\ado\msado15.dll
と記述があります。
(既定):C:\Program Files\Common Files\System\ado\msado15.dll
これを上記のように変更すると先ほどのプログラムはcygwin+apache
でも、ActiveScriptRuby+apacheでも動作するようになりました。

う〜む、納得いかないな〜。Windows環境変数どうなってるんだろう...

そこで、続きのソースを確かめると、やはり同様のエラーで止まってしま
います。どこにあるか見当のレジストリを一つ一つ変更のもどうかと思
うのですが、動かないよりはいいですよね。

度々になりますが、何かよい方法がありましたら、ご教授よろしくお
願いします。

ソース
#!D:/cygwin/bin/ruby

require 'win32ole'

puts "Content-type: text/html\n\n"
puts "<html><body>"

cn = WIN32OLE.new("ADODB.Connection.6.0")
cn.Open "DRIVER={Microsoft Access Driver (*.mdb)};Dbq=a.mdb"
rs = cn.Execute "SELECT * FROM test"
until rs.EOF
    for ex in rs.Fields
        puts ex.Value
    end
    rs.MoveNext
end
cn.Close

puts "</body></html>"

(a.mdbは、testテーブルに1行1列なにかデータがあればよいです)
エラー
test.cgi:9:in `method_missing': Open (WIN32OLERuntimeError)
    OLE error code:8007007E in ADODB.Connection
      <No Description>
    HRESULT error code:0x80020009
      例外が発生しました。
        from test.cgi:9

>artonです。
>
>Cygwin版のほうは見当もつきませんが、
>0x8007007eは、The specified module could not be found. ということなので、
>Apacheをサービスとして実行しているため、起動されたCGIのユーザのレジスト
>リにADODB.Connectionが書き込まれていないということではないでしょうか。
>あるいは、ADODBがインストールされているパスに対する読み取り権限がないと
>か。
>
>-- 
>arton <artonx@yahoo.co.jp>
>
>--------------------------------------
>Get Disney character's mail address on Yahoo! Mail
>http://pr.mail.yahoo.co.jp/disney/

---
兼本周治@自宅

 m⌒∇⌒m三Э
shujikan@fides.dti.ne.jp

In This Thread

Prev Next