Estou tentando executar manualmente comandos SQL para acessar procedimentos no NuoDB.
Estou usando Ruby on Rails e estou usando o seguinte comando:
ActiveRecord::Base.connection.execute("SQL query")
A "consulta SQL" pode ser qualquer comando SQL.
Como por exemplo, eu tenho uma tabela chamada "Feedback" e quando executo o comando:
ActiveRecord::Base.connection.execute("SELECT `feedbacks`.* FROM `feedbacks`")
Isso retornaria apenas uma resposta "verdadeira" em vez de me enviar todos os dados solicitados.
Esta é a saída no console do Rails:
SQL (0.4ms) SELECT `feedbacks`.* FROM `feedbacks`
=> true
Gostaria de usar isso para chamar procedimentos armazenados no NuoDB, mas, ao chamar os procedimentos, isso também retornaria uma resposta "verdadeira".
Existe alguma maneira de executar comandos SQL e obter os dados solicitados em vez de obter uma resposta "verdadeira"?
fonte
ActiveRecord::Base.connection.execute
. Você poderia apontar o que exatamente mudou para obter os dados em vez de apenastrue
?Para mim, não consegui que isso retornasse um hash.
Mas o uso do método exec_query funcionou.
fonte
.exec_query
retorna umActiveRecord::Result
objeto que é muito útil, com fácil acesso.columns
e.rows
atributos..execute
retorna uma matriz de hashes que geralmente é mais problemática e provavelmente mais pesada na memória. Eu nunca tinha usadoexec_query
, obrigado pela dica..entries
recurso.exec_query
para obter os resultados como uma matriz de hashes.Reposicionando a resposta do nosso fórum para ajudar outras pessoas com um problema semelhante:
fonte
O código acima é um exemplo para
fonte
ActiveRecord::Base.connection
sem chamarActiveRecord::Base.clear_active_connections!
. Veja api.rubyonrails.org/v5.2/classes/ActiveRecord/…