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

はじめまして。

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

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

[ruby-list:46592] Re: ruby1.9 でpostgresql8.4を利用するときについて。

From: Nobuyuki Inaba <nobuyuki.inaba@...>
Date: 2009-12-02 00:03:17 UTC
List: ruby-list #46592
アドバイスありがとうございます。

やってみました。
こんな感じでエラーが表示されました。
なにか解決のヒントがありますでしょうか?


-----------------------------------------------------------------------------
conn = DBI.connect('DBI:Pg:testdb:localhost', 'test01', '123456789') とした場合
	
$ ruby1.9 -d test.rb
Exception `LoadError' at <internal:gem_prelude>:99 - Could not find
RubyGem deprecated (>= 0)

/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old initialize
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old initialize
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old initialize
Exception `LoadError' at <internal:gem_prelude>:99 - Could not find
RubyGem deprecated (>= 0)

/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old is_nullable?
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old can_be_null?
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old is_indexed?
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old is_primary?
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old is_unique
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old size
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old size=
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old length
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old length=
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old decimal_digits
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old decimal_digits=
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old default_value
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old default_value=
/usr/lib/ruby/1.9.0/dbi/handles.rb:12: warning: optional boolean
argument is obsoleted
Exception `LoadError' at <internal:gem_prelude>:99 - Could not find
RubyGem pg (>= 0)

Exception `PGError' at /usr/lib/ruby/1.9.0/dbd/pg/database.rb:51 -
unterminated quoted string in connection info string

Exception `DBI::OperationalError' at
/usr/lib/ruby/1.9.0/dbd/pg/database.rb:82 - unterminated quoted string
in connection info string

/usr/lib/ruby/1.9.0/dbd/pg/database.rb:82:in `rescue in initialize':
unterminated quoted string in connection info string
(DBI::OperationalError)
	from /usr/lib/ruby/1.9.0/dbd/pg/database.rb:41:in `initialize'
	from /usr/lib/ruby/1.9.0/dbd/Pg.rb:157:in `new'
	from /usr/lib/ruby/1.9.0/dbd/Pg.rb:157:in `connect'
	from /usr/lib/ruby/1.9.0/dbi/handles/driver.rb:33:in `connect'
	from /usr/lib/ruby/1.9.0/dbi.rb:142:in `connect'
	from test.rb:7:in `<main>'

-----------------------------------------------------------------------------
conn = DBI.connect('DBI:PG:testdb:localhost', 'test01', '123456789')	
と最初のとおり実行した場合。

$ ruby1.9 -d test.rb
Exception `LoadError' at <internal:gem_prelude>:99 - Could not find
RubyGem deprecated (>= 0)

/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old initialize
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old initialize
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old initialize
Exception `LoadError' at <internal:gem_prelude>:99 - Could not find
RubyGem deprecated (>= 0)

/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old is_nullable?
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old can_be_null?
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old is_indexed?
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old is_primary?
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old is_unique
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old size
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old size=
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old length
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old length=
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old decimal_digits
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old decimal_digits=
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old default_value
/usr/lib/ruby/1.9.0/deprecated.rb:178: warning: method redefined;
discarding old default_value=
/usr/lib/ruby/1.9.0/dbi/handles.rb:12: warning: optional boolean
argument is obsoleted
Exception `LoadError' at /usr/lib/ruby/1.9.0/dbi.rb:245 - no such file
to load -- dbd/PG
Exception `LoadError' at <internal:gem_prelude>:99 - Could not find
RubyGem pg (>= 0)

Exception `NameError' at /usr/lib/ruby/1.9.0/dbi.rb:274 -
uninitialized constant DBI::DBD::PG
Exception `DBI::InterfaceError' at /usr/lib/ruby/1.9.0/dbi.rb:294 -
Unable to load driver 'PG' (underlying error: uninitialized constant
DBI::DBD::PG)
/usr/lib/ruby/1.9.0/dbi.rb:294:in `block in load_driver': Unable to
load driver 'PG' (underlying error: uninitialized constant
DBI::DBD::PG) (DBI::InterfaceError)
	from /usr/lib/ruby/1.9.0/monitor.rb:190:in `mon_synchronize'
	from /usr/lib/ruby/1.9.0/dbi.rb:236:in `load_driver'
	from /usr/lib/ruby/1.9.0/dbi.rb:154:in `_get_full_driver'
	from /usr/lib/ruby/1.9.0/dbi.rb:139:in `connect'
	from test.rb:7:in `<main>'




2009年12月1日22:03 akira yamada / やまだあきら <akira@arika.org>:
> (2009年11月27日 19:12), Nobuyuki Inaba wrote:
>> begin
>>  conn = DBI.connect('DBI:PG:testdb:localhost', 'test01', '123456789')
>
> DBI:Pg:... にすると通ったりしますか? もしそうなら
> dbi.rbの280行目あたり:
>
>  found = DBI::DBD.constants.find { |e| e.downcase == dc }
>
> ここでdcは"pg"(driver_name.downcase)なのですが
> 1.9.0〜ではconstantsがsymbolを返すので1.8とは動作が違ってきます。
> そのあたりではないでしょうか。
>
>> $ ruby1.9 test.rb
>> /usr/lib/ruby/1.9.0/dbi.rb:294:in `block in load_driver': Unable to
>> load driver 'PG' (underlying error: uninitialized constant
>> DBI::DBD::PG) (DBI::InterfaceError)
>>       from /usr/lib/ruby/1.9.0/monitor.rb:190:in `mon_synchronize'
>>       from /usr/lib/ruby/1.9.0/dbi.rb:236:in `load_driver'
>>       from /usr/lib/ruby/1.9.0/dbi.rb:154:in `_get_full_driver'
>>       from /usr/lib/ruby/1.9.0/dbi.rb:139:in `connect'
>>       from test.rb:6:in `<main>'
>
> ruby1.9 -d test.rbのように-dを付けて実行すると
> もう少し何かわかるかも。
>
> --
> やまだ
>
>

In This Thread