On Jun 9, 1:35 pm, Daniel Berger <djber... / gmail.com> wrote:
> On Jun 9, 11:33 am, tcfo... / gmail.com wrote:
>
>
>
> > Hi all!
>
> > I'm using the Ruby DBI class to create connections to both a MSSQL and
> > an Oracle database to verify the data migration between them is
> > successful.  My test works fine on XP, but on Vista (currently with
> > SP1, but my problem has always happened on Vista), I get a
> > segmentation fault when I perform my first select statement on the
> > Oracle database.  Select statements are performed against the MSSQL
> > database prior to the Oracle database and work fine.  I'm running the
> > test from a command prompt that has administrator privileges.
>
> > - Here's my Oracle connection:
>
> > @ora_connect = DBI.connect("DBI:ADO:Provider=OraOLEDB.Oracle;Data
> > Source=devserver;User Id=read_all;Password=password")
>
> > - Here is my method for running a select statement:
>
> > def getDBValue(connection, query, id1, *id2)
> >     dbi_query = connection.prepare(query)
> >     dbi_query.execute(id1, *id2)
> >     #fetch the result
> >     return dbi_query.fetch
> > end
>
> > - Here is the first Oracle select statement:
>
> > createDateTime = getDBValue(@ora_connect, "SELECT CREATED_TIME FROM
> > ORATEST.POLICY WHERE POLICYNUM = ?", policyNumber)
>
> > - Here is the error message I get:
>
> > c:/ruby/lib/ruby/site_ruby/1.8/DBD/ADO/ADO.rb:94: [BUG] Segmentation
> > fault ruby 1.8.6 (2007-03-13) [i386-mswin32]
>
> > Has anyone else seen this?  Does anyone have any ideas on workarounds
> > or how to fix it?
>
> > Thanks in advance for your help!
>
> What version of Ruby and DBI are you using? Line 94 of my ADO.rb file
> is just a comment. Can you paste that line at least?
>
> Thanks,
>
> Dan

Sorry about that - I'm using Ruby version 1.8.6 and DBI version 0.1.1

Here's the code around line 94:

 90  def execute
 91    # TODO: use Command and Parameter
 92    # TODO: substitute all ? by the parametes
 93    sql = bind(self, @statement, @params)
 94    @res_handle = @handle.Execute(sql)
 95
 96    # TODO: SELECT and AutoCommit finishes the result-set
 97    #       what to do?
 98    if @db['AutoCommit'] == true and not SQL.query?(@statement)
then
 99      @db.commit
100    end

101  rescue RuntimeError => err
102   raise DBI::DatabaseError.new(err.message)
103  end


Thanks for taking at look at this!

-Tiffany