[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Ruby DBI class

tcfodor

6/9/2008 5:28:00 PM

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
2 Answers

Daniel Berger

6/9/2008 7:36:00 PM

0



On Jun 9, 11:33=A0am, 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. =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

tcfodor

6/9/2008 10:31:00 PM

0

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