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

はじめまして。

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

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

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

From: 兼本周治@自宅 <shujikan@...>
Date: 2009-12-18 13:26:35 UTC
List: ruby-list #46663
はじめまして、ML初投稿です。よろしくお願いします。

Windows 7/Vistaで
WIN32OLE.new("ADODB.Connection")
が失敗してしまうのですが、何か解決策がありましたら、よろしくお願いします。

環境
Cygwin(1.8.7 (2008-08-11 patchlevel 72))
ActiveScriptRuby(1.8.7-p174) 
Windows 7/Vista
Apache 2.0.63

Windows XPであれば、エラーは発生しません。
Cygwin版ですと、コマンドライン・Apache起動両方失敗するのですが、
ActiveScriptRuby版の場合、コマンドラインからは成功するのですが、
Apacheから起動するとエラーになってしまいます。

UAC無効にしても結果は同じでした。

ソース(参考: http://jp.rubyist.net/magazine/?0005-Win32OLE )
#!D:/cygwin/bin/ruby

require 'win32ole'

cn = WIN32OLE.new("ADODB.Connection")
puts "Content-type: text/html\n\n";
puts "<html><body>test</body></html>"

エラー(Cygwin)
test.cgi:5:in `initialize': failed to create WIN32OLE object from `ADODB.Connecion' (WIN32OLERuntimeError)
HRESULT error code:0x8007007e
指定されたモジュールが見つかりません。
from test.cgi:5:in `new'
from test.cgi:5

エラー(ActiveScriptRuby)
[Fri Dec 11 21:50:37 2009] [error] [client 192.168.170.19] Premature end of script headers: test.cgi
[Fri Dec 11 21:50:37 2009] [error] [client 192.168.170.19] D:/xxx/test.cgi:5:in `initialize': failed to create WIN32OLE object from `ADODB.Connection' (WIN32OLERuntimeError)
[Fri Dec 11 21:50:37 2009] [error] [client 192.168.170.19] HRESULT error code:0x8007007e
[Fri Dec 11 21:50:37 2009] [error] [client 192.168.170.19] \x8ew\x92\xe8\x82\xb3\x82\xea\x82\xbd\x83\x82\x83W\x83\x85\x81[\x83\x8b\x82\xaa\x8c\xa9\x82\xc2\x82\xa9\x82\xe8\x82\xdc\x82\xb9\x82\xf1\x81B
[Fri Dec 11 21:50:37 2009] [error] [client 192.168.170.19] \tfrom D:/xxx/test.cgi:5:in `new'
[Fri Dec 11 21:50:37 2009] [error] [client 192.168.170.19] \tfrom D:/xxx/test.cgi:5

ちなみに、Active Perlで同様のプログラムを作って見ましたが、
こちらは動作します。(いまさら、Perlに書き直す気も起こらないですが。)

#!C:/Perl/bin/perl
use Win32::OLE;
$db = Win32::OLE->new("ADODB.Connection");

print "Content-type: text/html\n\n";
print "<html><body>test2</body></html>";
exit; 

ご助言、よろしくお願いします。

---
兼本周治@自宅

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

In This Thread

Prev Next