Support Requests: Browse | Submit New | Admin

[#27347] Cant Insert New Rows into tables.

Date:
2009-10-26 01:01
Priority:
3
Submitted By:
Stephan van Blerk (vanblerks)
Assigned To:
Nobody (None)
Category:
None
State:
Open
Summary:
Cant Insert New Rows into tables.

Detailed description
Trying to use the scaffolding created by rails to insert a new item into a table.


Rails Server = Ubuntu 9.04 with all the neccesary goodies

Database = IBM iSeries / AS400 / System I (whatever its called these days)


Error in browser 

S1000 (-29) [unixODBC][IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0029 - INTO clause missing from embedded
statement.

Log

Processing ProductsController#create (for 127.0.0.1 at 2009-10-26 00:26:08) [POST]
  Parameters: {"commit"=>"Create",
"authenticity_token"=>"ShOokhJvIfkFaI/h3uCODYNWjjMZldb56OszrAvWnvk=",
"product"=>{"price"=>"15", "title"=>"Test Products",
"stock"=>"100", "description"=>"Testin 12345",
"image"=>"test.png"}}
ODBCAdapter#columns>
args=[products|Product Columns]
ODBCAdapter#native_database_types>
ODBCAdapter#native_database_types>
ODBCAdapter#native_database_types>
ODBCAdapter#native_database_types>
ODBCAdapter#native_database_types>
ODBCAdapter#native_database_types>
ODBCAdapter#transaction>
ODBCAdapter#begin_db_transaction>
ODBCAdapter#quote_table_name>
args=[products]
ODBCAdapter#quote_column_name>
args=[products]
ODBCAdapter#quote_column_name>
args=[title]
ODBCAdapter#quote_table_name>
args=[products]
ODBCAdapter#quote_column_name>
args=[products]
ODBCAdapter#quote_table_name>
args=[products]
ODBCAdapter#quote_column_name>
args=[products]
ODBCAdapter#quote_table_name>
args=[products]
ODBCAdapter#quote_column_name>
args=[products]
ODBCAdapter#quote>
args=[Test Products]
ODBCAdapter#quote_string>
args=[Test Products]
ODBCAdapter#add_limit_offset!>
args=[SELECT products.id FROM products WHERE (products.title = 'Test Products') ]
ODBCAdapter#quote_table_name>
args=[products]
ODBCAdapter#quote_column_name>
args=[products]
ODBCAdapter#select_all>
args=[SELECT products.id FROM products WHERE (products.title = 'Test Products')  LIMIT 1|Product Load]
ODBCAdapter#prefetch_primary_key?>
ODBCAdapter#quote>
args=[15.0]
ODBCAdapter#quote>
args=[Test Products]
ODBCAdapter#quote_string>
args=[Test Products]
ODBCAdapter#quote>
args=[100]
ODBCAdapter#quote>
args=[Testin 12345]
ODBCAdapter#quote_string>
args=[Testin 12345]
ODBCAdapter#quote>
args=[test.png]
ODBCAdapter#quote_string>
args=[test.png]
ODBCAdapter#quote_table_name>
args=[products]
ODBCAdapter#quote_column_name>
args=[products]
ODBCAdapter#quote>
args=[15.0]
ODBCAdapter#quote>
args=[Test Products]
ODBCAdapter#quote_string>
args=[Test Products]
ODBCAdapter#quote>
args=[100]
ODBCAdapter#quote>
args=[Testin 12345]
ODBCAdapter#quote_string>
args=[Testin 12345]
ODBCAdapter#quote>
args=[test.png]
ODBCAdapter#quote_string>
args=[test.png]
ODBCAdapter#quote_column_name>
args=[price]
ODBCAdapter#quote_column_name>
args=[title]
ODBCAdapter#quote_column_name>
args=[stock]
ODBCAdapter#quote_column_name>
args=[description]
ODBCAdapter#quote_column_name>
args=[image]
ODBCAdapter#default_sequence_name>
args=[products|id]
ODBCAdapter#insert>
args=[INSERT INTO products (price, title, stock, description, image) VALUES(15.0, 'Test Products', 100, 'Testin 12345',
'test.png')|Product Create|id||products_seq]
ODBCAdapter#last_insert_id>
args=[products]
ODBCAdapter#select_value>
args=[VALUES IDENTITY_VAL_LOCAL()|last_insert_id]
ODBCAdapter#select_one>
args=[VALUES IDENTITY_VAL_LOCAL()|last_insert_id]
exception=S1000 (-29) [unixODBC][IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0029 - INTO clause missing from
embedded statement.
exception=S1000 (-29) [unixODBC][IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0029 - INTO clause missing from
embedded statement.
exception=S1000 (-29) [unixODBC][IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0029 - INTO clause missing from
embedded statement.
ODBCAdapter#rollback_db_transaction>
ActiveRecord::StatementInvalid: S1000 (-29) [unixODBC][IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0029 - INTO
clause missing from embedded statement.

ActiveRecord::StatementInvalid (S1000 (-29) [unixODBC][IBM][System i Access ODBC Driver][DB2 for i5/OS]SQL0029 - INTO
clause missing from embedded statement.):
  /usr/lib/ruby/gems/1.8/gems/activerecord-odbc-adapter-2.0/lib/active_record/connection_adapters/odbc_adapter.rb:1377:in
`insert_sql'
  /usr/lib/ruby/gems/1.8/gems/activerecord-odbc-adapter-2.0/lib/active_record/connection_adapters/odbc_adapter.rb:891:in
`insert'
  /usr/lib/ruby/gems/1.8/gems/activerecord-odbc-adapter-2.0/lib/active_record/connection_adapters/odbc_adapter.rb:1328:in
`transaction'
  app/controllers/products_controller.rb:46:in `create'
  app/controllers/products_controller.rb:45:in `create'

Rendered rescues/_trace (71.6ms)
Rendered rescues/_request_and_response (2.0ms)
Rendering rescues/layout (internal_server_error)
ODBCAdapter#disconnect!>
ODBCAdapter#initialize>
ODBCAdapter#active?>


Any help in resolving this issue would be GREATLY appreciated.

Thanks

Stephan

Add A Comment: Notepad

Please login


Followup

Message
Date: 2011-11-23 18:33
Sender: Justin Hamilton

You must change the line in odbcext_db2.rb from

select_value("VALUES IDENTITY_VAL_LOCAL()",
'last_insert_id')

to
    
select_value("Select IDENTITY_VAL_LOCAL() as id from
#{table}"

Attached Files:

Name Description Download
No Files Currently Attached

Changes:

No Changes Have Been Made to This Item