Ruby DBI class

T

tcfodor

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!

-Tiffany
 
D

Daniel Berger

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. =A0My 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. =A0Select statements are performed against the MSSQL
database prior to the Oracle database and work fine. =A0I'm running the
test from a command prompt that has administrator privileges.

- Here's my Oracle connection:

@ora_connect =3D DBI.connect("DBI:ADO:provider=3DOraOLEDB.Oracle;Data
Source=3Ddevserver;User Id=3Dread_all;Password=3Dpassword")

- Here is my method for running a select statement:

def getDBValue(connection, query, id1, *id2)
=A0 =A0 dbi_query =3D connection.prepare(query)
=A0 =A0 dbi_query.execute(id1, *id2)
=A0 =A0 #fetch the result
=A0 =A0 return dbi_query.fetch
end

- Here is the first Oracle select statement:

createDateTime =3D getDBValue(@ora_connect, "SELECT CREATED_TIME FROM
ORATEST.POLICY WHERE POLICYNUM =3D ?", 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? =A0Does 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
 
T

tcfodor

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads

DBI 2
Multi-threaded DBI causing segfault 3
Ruby DBI Help Needed 0
dbi connection 3
Dbi Timeout expired Sql server 2005 using ADO 0
strange dbi 0
Ruby DBI Error 0
DBI and MS SQL server 2000 problems 0

Members online

Forum statistics

Threads
473,968
Messages
2,570,150
Members
46,696
Latest member
BarbraOLog

Latest Threads

Top