Activerecord::JDBCError: Invalid column number

Hi,

I’m rather new to Ruby and RoR, so I do not really know whether this ist
the right forum to place my question.

For my first ‘project’ I planned to create a simple online-viewer, which
grabs data from an existing database and make them visible in a
structured form via browsers. So I thought that could be the right
beginner-project, because I have only read datasets without any editing
or creating.

The existing database is a very old one (Pervasive 8.7) and the
db-design is poor, but that is all I have and I have to live with it.

Fortunately there are JDBC-Drivers, so a connection via
activerecord-jdbc-adapter will work… I thought.

Within the services of Netbeans using those JDBC-Drivers I’m able to
establish a connection to the database and the IDE shows me all
available tables and there referring datasets.

The content of database.yml is only:

development:
adapter: jdbc
username:
password:
driver: com.pervasive.jdbc.v2.Driver
url: jdbc:pervasive://192.168.0.130:1583/database

No test-db and no production-db, because the development-db is
read-only.

After putting these tow lines into the environment.rb:

$CLASSPATH << “file:///#{Rails.root}/lib/java/pvjdbc2.jar”
$CLASSPATH << “file:///#{Rails.root}/lib/java/pvjdbc2x.jar”

the application started with webrick gives no error-message, so I think,
that the JDBC-drivers are loaded correctly.

Now I made a model mandate_file.rb which contains

class MandateFile < ActiveRecord::Base

fix non-standard table and primary key name conventions

set_table_name “STAMM”
set_primary_key :D_LFDNR

fix the upper-cased named columns

    alias_attribute :id, :D_LFDNR

alias_attribute :annotext_az, :D_AZ
alias_attribute :name_creditor, :D_RUBGE

end

When I try to create a simple object via the console using “m =
MandateFile.new” I get the following list of errors:

ActiveRecord::JDBCError: Invalid column number
from arjdbc/jdbc/RubyJdbcConnection.java:121:in columns' from c:/jruby/lib/ruby/gems/1.8/gems/activerecord-jdbc-adapter-1.1.1/lib/arjdbc/jdbc/adapter.rb:229:injdbc_columns’
from
c:/jruby/lib/ruby/gems/1.8/gems/activerecord-3.0.7/lib/active_record/base.rb:680:in
columns' from c:/jruby/lib/ruby/gems/1.8/gems/activerecord-3.0.7/lib/active_record/persistence.rb:284:inattributes_from_column_definition’
from
c:/jruby/lib/ruby/gems/1.8/gems/activerecord-3.0.7/lib/active_record/locking/optimistic.rb:62:in
attributes_from_column_definition' from c:/jruby/lib/ruby/gems/1.8/gems/activerecord-3.0.7/lib/active_record/base.rb:1395:ininitialize’
from (irb):1:in evaluate' from org/jruby/RubyKernel.java:1088:ineval’
from C:/jruby/lib/ruby/1.8/irb.rb:158:in eval_input' from C:/jruby/lib/ruby/1.8/irb.rb:271:insignal_status’
from C:/jruby/lib/ruby/1.8/irb.rb:155:in eval_input' from org/jruby/RubyKernel.java:1418:inloop’
from org/jruby/RubyKernel.java:1191:in catch' from C:/jruby/lib/ruby/1.8/irb.rb:154:ineval_input’
from C:/jruby/lib/ruby/1.8/irb.rb:71:in start' from org/jruby/RubyKernel.java:1191:incatch’
from C:/jruby/lib/ruby/1.8/irb.rb:70:in start' from c:/jruby/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/commands/console.rb:44:instart’
from
c:/jruby/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/commands/console.rb:8:in
start' from c:/jruby/lib/ruby/gems/1.8/gems/railties-3.0.7/lib/rails/commands.rb:23:in(root)’
from org/jruby/RubyKernel.java:1038:in require' from script\rails:6:in(root)

I’ve googled for ‘Invalid column number’ but found nothing, what might
be helpful.

I think, that I make a very simple mistake, but I’ve no idea about it.
Are there any hints for me?

Thanks in advance!

Klaus

Sent from my iPhone

On May 7, 2011, at 2:51 PM, Klaus H. [email protected] wrote:

The content of database.yml is only:

Check to make sure your columns in your model are correctly listed. It
sounds like it is trying to use the id column or numerically increment a
column that is not numeric.

Also, if the database is read only then MandateFile.new is not going to
work anyway since you won’t be able to save the record.

B.

Okay, I’ve choesen an other table with only 11 columns and listed them
all:

class MandateFile < ActiveRecord::Base

fix non-standard table and primary key name conventions

set_table_name :AZLOELOG
set_primary_key :D_AZLOGNR

alias_attribute :id, :D_AZLOGNR
alias_attribute :anno_az, :D_AZLOAGAZ
alias_attribute :name_debtor, :D_AZLOGRUB1
alias_attribute :name_creditor, :D_AZLOGRUB2
alias_attribute :delete_date, :D_AZLOGDAT
alias_attribute :delete_user, :D_AZLOGUSER
alias_attribute :not_used, :D_AZLOGFREE
alias_attribute :log_sign, :D_AZLOGKE
alias_attribute :delete_year, :D_AZLOGAZJAHR
alias_attribute :delete_counter, :D_AZLOGAZZAEHL
alias_attribute :reserved, :D_AZLOGRES

end

I’ve also switched the database access to ‘read+write’. Column’s
D_AZLOGNR datatype is integer. IMHO I did and checked all that Bryan
told me, but the result is the same: ActiveRecord::JDBCError: Invalid
column number

Any mory suggestions?

On May 8, 3:36am, Klaus H. [email protected] wrote:

alias_attribute :annotext_az, :D_AZLOAGAZ
end

I’ve also switched the database access to ‘read+write’. Column’s
D_AZLOGNR datatype is integer. IMHO I did and checked all that Bryan
told me, but the result is the same: ActiveRecord::JDBCError: Invalid
column number

Any mory suggestions?

Do you get the same behavior if you just call ‘MandateFile.columns’? I
suspect you will - this sounds like an issue with the JDBC driver
rather than your code. You might want to try the AR-JDBC JIRA and/or
mailing lists:

http://kenai.com/jira/browse/ACTIVERECORD_JDBC

–Matt J.

Matt J. wrote in post #997376:

Do you get the same behavior if you just call ‘MandateFile.columns’?

Hi Matt,

MandateFile.columns quits with the same errormessage as you thought.

I suspect you will - this sounds like an issue with the JDBC driver
rather than your code.

Maybe, but if its so, it must be in addition to activerecord, because I
used the same JDBC driver several months ago to establish a connection
through pure Java and I was able to query the database via simple
SQL-Statements.

You might want to try the AR-JDBC JIRA and/or
mailing lists:

http://kenai.com/jira/browse/ACTIVERECORD_JDBC

Thanks, I will take a look at these.

Greetings

Klaus

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs