[英]how to call stored procedure in ruby on rails?
I am new to ROR. 我是ROR的新手。 I want to call the Stored Procedure to process when I click the submit button in the VIEW.
我想在单击VIEW中的提交按钮时调用存储过程进行处理。
Model:
-------
class Pro::DataImport < ActiveRecord::Base
attr_accessible :file_name, :process_name, :updated_by, :validates
end
Controller:
-----------------
class Pro::DataImportsController < ApplicationController
before_filter :authenticate_user!
layout "layouts/enr/energy_master"
def index
@pro_data_imports = Pro::DataImport.all
end
def new
@pro_data_import = Pro::DataImport.new
end
end
View
----------
<%= form_for @pro_data_import do %>
<div class="field">
Browse the file to upload:<br />
<%= file_field_tag ':file_name' %>
</div>
<div class="actions">
<%= submit_tag 'Import File' %>
</div>
<% end %>
Stored Proc
---------------
ALTER PROCEDURE "DBA"."my_enr_test"(file_name long varchar)
BEGIN
INSERT INTO DBA.pro_data_imports(file_name) values(file_name);
END
Thanks in Advance.. Please Help me. 在此先感谢..请帮助我。 I want to get the filepath from the upload button and store into the database column file_name.
我想从上传按钮获取文件路径并存储到数据库列file_name中。 How to execute the store procedure for the submit button.
如何执行提交按钮的存储过程。 Please help me!!
请帮我!!
if you are using the ActiveRecord SQLServer Adapter, checkout: 如果您使用的是ActiveRecord SQLServer适配器,请检查:
http://rubydoc.info/gems/activerecord-sqlserver-adapter/3.2.9/ActiveRecord/ConnectionAdapters/Sqlserver/DatabaseStatements:execute_procedure http://rubydoc.info/gems/activerecord-sqlserver-adapter/3.2.9/ActiveRecord/ConnectionAdapters/Sqlserver/DatabaseStatements:execute_procedure
do something like this in your code 在你的代码中做这样的事情
class Pro::DataImport < ActiveRecord::Base
def self.update(user)
self.execute_procedure("Stored Procedure Name", arg1, arg2)
end
end
Every normal SQL query is converted to a stored procedure to be executed. 每个普通的SQL查询都转换为要执行的存储过程。 That is how the SQL Server adapter for ActiveRecord works.
这就是ActiveRecord的SQL Server适配器的工作方式。 So you only have to worry about this for permanent stored procedures defined in the database.
因此,您只需担心数据库中定义的永久存储过程。
# PL/SQL records or object type parameters should be passed as Hash
p_employee = { :employee_id => 1, :first_name => 'First', :last_name => 'Last', :hire_date => Time.local(2000,01,31) }
plsql.test_full_name(p_employee)
# test_full_name is procedure name in oracle
# p_employee holds parameter list
#employee_id is first param defined in stored procedure
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.