Como consultar en oracle


#1

holaa todos ante todo un cordial saludo alguien que me pueda ayudar.
se plantea lo siguiente necesito mostrar 2 campos de una tabla los
cuales son mtin_mtin,mtin_descri de una tabla llamada re_tmtinv de esos
dos campos se necesita obtener el codigo y la descripcion,y luego ser
mostrado para despues ser agregados a un formulario.
el problema que tengo es que ya tengo la vista pero esta en blanco
alguien de ustedes que tenga una idea que me pueda ayudar en esto
please quiero aprender.

    gracias

#2

Você percebeu que esta é uma lista em inglês?

Abs

On Feb 16, 6:51 pm, Oraldo S. removed_email_address@domain.invalid


#3

Hola

A la gente aquí no parece que le guste mucho cuando los mensajes no
son en inglés. Aparte de eso la descripción de tu problema no es nada
clara. ¿Has creado una vista (view?) y cuando la usas no ves datos?
¿Dónde la usas? ¿Es en la aplicación RoR en lugar de una tabla o en
MySQL/Postgre/Sqlite/otra BD?

Si has creado el “model” basado en una vista, no creo que to código
vaya a funcionar. Los “models” están basados en las tablas mismas.

Si el problema es que tu vista no muestra datos en el entorno de la
base de datos el problema está obviamente en el código que utilizaste
para crear la vista, a no ser que la tabla no tenga datos o no tenga
datos que cumplan las condiciones requeridas para ser mostrado por la
vista.

Sé que esto probablemente no te ayuda nada o casi nada pero con la
descripción del problema que diste es lo mejor que puedo ofrecer.

Pepe

On Feb 16, 4:51 pm, Oraldo S. removed_email_address@domain.invalid


#4

Hola, existe una lista de rails en castellano, sugiero que pases esto
por alla, ya que esta lista de en ingles
El 17/02/2009, a las 23:12, pepe
escribió:

vaya a funcionar. Los “models” están basados en las tablas mismas.
Pepe

alguien de ustedes que tenga una idea que me pueda ayudar en esto
please quiero aprender.

    gracias


Posted viahttp://www.ruby-forum.com/.

Mauricio D.
removed_email_address@domain.invalid
+57 315 4183043
http://www.3zona.com


#5

A mi me gusta muchisimo el español, pero la mayoría de los otros
miembros no van a entiender…

Saludos, Sazima


#6

Sazima wrote:

A mi me gusta muchisimo el espa�ol, pero la mayor�a de los otros
miembros no van a entiender…

Saludos, Sazima

si corazon por eso ya formule mi pregunta en el foro español lo puedes
visualizar pero hay aun no me han respondido


#7

pepe wrote:

Hola

A la gente aqu� no parece que le guste mucho cuando los mensajes no
son en ingl�s. Aparte de eso la descripci�n de tu problema no es nada
clara. �Has creado una vista (view?) y cuando la usas no ves datos?
�D�nde la usas? �Es en la aplicaci�n RoR en lugar de una tabla o en
MySQL/Postgre/Sqlite/otra BD?

Si has creado el “model” basado en una vista, no creo que to c�digo
vaya a funcionar. Los “models” est�n basados en las tablas mismas.

Si el problema es que tu vista no muestra datos en el entorno de la
base de datos el problema est� obviamente en el c�digo que utilizaste
para crear la vista, a no ser que la tabla no tenga datos o no tenga
datos que cumplan las condiciones requeridas para ser mostrado por la
vista.

S� que esto probablemente no te ayuda nada o casi nada pero con la
descripci�n del problema que diste es lo mejor que puedo ofrecer.

Pepe

On Feb 16, 4:51�pm, Oraldo S. removed_email_address@domain.invalid
si disculpa el texto esta un poco engorroso y sin comprension voy hacer
mas especifico.
ya logre dar con el problema gracias por responder ahora mi problema
crece porque no me esta haciendo la consulta en este proyecto se
necesita que una vez obtenido los campos que se estan pidiendo sean
consultados y luego ser agregados a un formulario que me recomiendas


#8

What is the URL for the Spanish forum? I’ll switch to answer there if
somebody gives it to me. Thanks.

Lo siento mucho pero sigo sin entender el problema. Quizá utilizar
puntuación para describirlo ayudaría.

“no me está haciendo la consulta”. Debes recordar que nunca nadie aquí
ha visto/utilizado tu aplicación. No entiendo lo que significa esto.

“una vez obtenido los campos que se estan pidiendo sean consultados”.
Si ya has obtenido los campos, necesitas consultarlos? No estoy seguro
de lo que quieres decir.

“y luego ser agregados a un formulario”. ¿Te refieres a un “form” en
inglés? Lo siento, no sé el término en español.

Como ves no entiendo prácticamente nada de lo que intentas preguntar
pero voy a intentar reformular la pregunta para ver si lo que intuyo
es lo que intentas decir.

¿Estás intentando crear un campo que contenga una lista de valores
para que el usuario pueda seleccionar uno de ellos? Si es eso lo que
estás intentando deberías utilizar un ‘select’:

Esta línea comienza la definición del formulario:
<% form_for :model, @model, :url => { :action => ‘action’ } do |f| %>

Esta línea genera la lista:
<%= f.select :field, @field_values %>

@field_values lo tienes que generar tú y debería ser un “array of
arrays”. Cada “array” debería contener como primer elemento el valor
que quieres mostrar en pantalla y el segundo elemento debería ser el
valor interno que quieres procesar. También puedes utilizar un simple
“array” y cada elemento se utilizaría tanto para mostrar el valor en
patalla como valor interno.

Espero que esto ayude.

Pepe

On Feb 18, 8:38 am, Oraldo S. removed_email_address@domain.invalid


#9

Perdón, debería haber dicho ‘cada “array” interno debería contener…’

Pepe


#10

pepe wrote:

Perd�n, deber�a haber dicho ‘cada “array” interno deber�a contener…’

Pepe
buen dia men gracias por tu interes se ve que tienes el conocimiento te
voy a colocar el codigo para que me puedas facilitar mejor tu
conocimiento.class Repuesto::RetmoveController < ApplicationController
layout ‘repuesto’
include Inserciones

def index
constantes()
@aa=@prbxx
session[:cond] =" "
@limit =5
@conditions = " "
@page = params[:page].blank? ? 0 : params[:page].to_i
#@cant = Re_tmtinv.find(:all, :conditions => @conditions).size
@from = @page == 0 ? 0 : @page*@limit

para hacer una consulta a una tabla en la BD Oracle

autosys_db = DBI.connect(‘dbi:ODBC:autosys’,‘repuesto’,‘repuesto’)
sql = autosys_db.prepare(“SELECT mtin_mtin,mtin_descri FROM re_tmtinv”)
sql.execute
ar_tmp = sql.fetch
autosys_db.disconnect

@all_retmove=ar_tmp

end
def paginar
@limit = 5
if !params[:retmove].blank?
condiciones()
session[:cond]=@conditions
else
@conditions = session[:cond]
end
@page = params[:page].blank? ? 0 : params[:page].to_i
#@cant = Retmtinv.find(:all, :conditions => @conditions).size
@from = @page == 0 ? 0 : @page*@limit
#@all_retmove = Retmtinv.find(:all, :conditions => @conditions,
:limit => “#{@from},#{@limit}”, :order => “id DESC”)
autosys_db = DBI.connect(‘dbi:ODBC:autosys’,‘repuesto’,‘repuesto’)
sql = autosys_db.prepare(“SELECT mtin_mtin,mtin_descri FROM
re_tmtinv where mtin_mtin = #’{mtin}and mtin_descri = #’{descri} '”)
sql.execute
ar_tmp = sql.fetch
autosys_db.disconnect

@all_retmove=ar_tmp
  render(:partial => 'listretmove')

end
end

la vista es la siguiente

Repuestos Registrados

<% form_for :model, @model, :url => { :action => ‘action’ } do |c| %>

<% @cont = 0 %> <% @all_retmove.each do |c| %> <% @cont += 1 %> <% @cont % 2 == 0 ? @cl = "par" : @cl = "impar" %>
  <td align="center" width="1%">
<%= 

link_to(image_tag(“botones/modificar.gif”,:border=>0,:size=>‘20x20’,
:title => “Modificar”, :alt=>‘Modificar Seleccionados’),:controller =>
‘/repuesto/retmove’, :action => :modretmove, :mtin_mtin => c[0] ) %>

</tr>

<% end %>

Repuestos Opciones
<%= c[1] %>
<%=
link_to_remote(image_tag(“botones/borrar2.gif”,:border=>0,:size=>‘20x20’,
:title => “Eliminar”, :alt=>‘Eliminar Seleccionados’),:url =>
{:controller => ‘/repuesto/retmove’, :action => :Delete, :mtin_mtin =>
c[0] }, :update => ‘renderSpace2’, :confirm=>‘Esta seguro de querer
eliminar este registro?’) %>

<% if @page > 0 %> <%= link_to_remote(image_tag("botones/anterior2.gif", :Size=>'30x30', :border=>0, :title=>'Anterior'), :update => 'renderSpace2', :url => {:controller => '/repuesto/retmove', :action => :Paginar}, :with => "'page='+ #{@page-1}")%> <% end %> <%= link_to_remote(image_tag("botones/siguiente2.gif", :Size=>'30x30', :border=>0, :title=>'Siguiente'), :update => 'renderSpace2', :url => {:controller => '/repuesto/retmove', :action => :Paginar}, :with => "'page='+ #{@page+1}")%> <% end %> ############################################################################### ok como bien podras visualizar tengo el siguiente problema no me esta generando la informacion que yo requiero solo me muestra un 80 y 88 cuando yo en realidad necesito que me muestre el codigo y la descripcion del repuesto,que sugieres en este caso.


#11

Lo siento, al final me terminé confundiendo y utilicé c[0] en lugar de
c[1] y c[1] en lugar de c[2].

Pepe


#12

Lo primero que noté cuando copié el código en Netbeans es que en el
controlador, la siguiente línea producía en error de sintaxis:

:limit => "#{@from},#{@limit}", :order => "id DESC")

O se te olvidó comentarla o te va a causar problemas.

Otra línea que creo tiene problemas en el controlador es la siguiente:

sql = autosys_db.prepare("SELECT mtin_mtin,mtin_descri FROM

re_tmtinv where mtin_mtin = #’{mtin}and mtin_descri = #’{descri} '")

Si estabas intentando utiizar “mtin” y “descri” como variables las
comillas simples después de las almohadillas te van a destrozar el
plan. Deberías quitarlas de
ahí.

Me imagino que cuando hablas del 80 y el 88 (vuelves a asumir que
podemos ver lo que pasa en tus pantallas y que conocemos tu base de
datos, que por supuesto no es cierto) te refieres al hecho de que en
el controlador cargas la variable “@all_retmove” with un código
(posiblemente el valor de “mtin_mtin” en la tabla) y una
descripción(posiblemente el valor “mtin_descri” en la tabla) y de que cuando
utilizas “c[1]” en la vista lo que aparece en la página es el código,
cuando lo que esperas ver es la descripción. ¿O esperas ver ambos?

No he trabajado todavía with DBI. Todo lo que he hecho hasta ahora
utiliza ActiveRecord. He buscado algo de información en internet y he
encontrado un ejemplo que en lugar de utilizar un índice como haces tú
(c[1]) utiliza el nombre de la variabla para extraerla del registro (c
[“mtin_descri”]).

Como no conozco DBI no puedo asegurarlo, pero si cuando utilizas “c
[0]” esperas ver la descripción y en su lugar ves el código
apostaríaa que el índice no empieza a 0 sino a 1. ¿Has intentado poner c[2]
para ver qué pasaba? Inténtalo o a lo mejor poner el nombre de la
columna como describo arriba solucionaría tu problema.

Si lo que quieres es ver ambos valores y el código aparece ya
utilizando “c[0]” entonces lo único que te falta es utilizar también “c
[1]” y lo tendrías solucionado.

Buena suerte.

Pepe

On Feb 19, 9:24 am, Oraldo alarcon removed_email_address@domain.invalid


#13

hola men:
yo ya he probado con el c[2] y lo que me esta haciendo es que me cambia
el numero osea en vez de ser por decirte algo 85 si le coloco el 2 me da
como resultado el 69, y si le coloco 3 me da otro numero diferente y asi
continuamente, con respecto a la linea esta #@all_retmove =
Retmtinv.find(:all, :conditions => @conditions,
:limit => “#{@from},#{@limit}”, :order => “id DESC”) esa es una sola
linea y se esta comentada toda ya me daba un error,

Logo_small
Compañia: BSCia

*
  SOPORTE
      o  SUCURSALES DE REPUESTOS
*
  OPERATIVO
*
  CONSULTAS
*
  REPORTES
*
  CIERRE

Buscador
Codigo:
Descripcion:

Repuestos Registrados
|Codigo| descripcion| Opciones
84 Modificar Seleccionados

Siguiente2
ok no te puedo dar la imagen porque aqui no se puede,pero para que me
entiendas mucho mejor aqui tienes la vista donde aparece el 84 es hay a
lo que me refiero,
otra cosa aqui le doy a buscar y tampoco me la hace por lo que me pone a
pensar y me complico mas el error que me da cuando genero la busqueda es
DBI::DatabaseError in Repuesto/retmoveController#paginar

37000 (936) [Microsoft][ODBC driver for Oracle][Oracle]ORA-00936: falta
expresion
yo tampoco conozco mucho de oracle pero segun algunas otras personas me
dicen que me faltan unas condiciones por implantar el problema es que no
se donde y como
bueno saludos hermano espero que me pueda seguir aportando para terminar
este paso que me tiene parado en la produccion del sistema
que tenga un buen dia

removed_email_address@domain.invalid
removed_email_address@domain.invalid


#14

Oraldo alarcon wrote:

hermano listo gracias a dios lo que me hacia falta era un simple _all en esta linea ar_tmp = sql.fetch_all problema resuelto voy a comenzar hacer la busqueda y el paginar si tienes informacio de como hacerlo en oracle te lo agradeceria saludos
removed_email_address@domain.invalid
removed_email_address@domain.invalid


#15

Hola.

Te iba a responder ahora mismo. Me alegro de que resolvieras el
problema. Lo de paginar supongo que te refieres a leer un número
determinado de registros? Si es eso me parece que se hace con la
palabra “limit”.

On Feb 20, 1:00 pm, Oraldo alarcon removed_email_address@domain.invalid


#16

pepe wrote:

Hola.

Te iba a responder ahora mismo. Me alegro de que resolvieras el
problema. Lo de paginar supongo que te refieres a leer un n�mero
determinado de registros? Si es eso me parece que se hace con la
palabra “limit”.

On Feb 20, 1:00�pm, Oraldo alarcon removed_email_address@domain.invalid

si yo lo estoy usando pero no me esta funcionando me esta desconociendo
la accion ahora bien

Unknown action

No action responded to Paginar. Actions: condiciones, constantes,
delete, index, listado, mod, and paginar
si le echamos un vistaso al codigo que te envie podremos notar que tengo
en funcionamiento el limit mi duda es que hace falta alguna sentencia
para que oracle reconozca el limit he busacdo informacion aqui
http://thebogles.com/blog/2006/06/paginate_by_sql-for-rails-a-more-general-approach/
y note que el pag9inado es diferente pobre con eso pero nada bueno ya
veremos si consigues algun detallito que se me haya escapado hazmelo
saber por favor se te agradece
feliz fin de semana ,


#17

Lo siento pero no he utilizado nunc la función de paginación en Rails,
pero voy a empezar pronto, posiblemente este fin de semana o la semana
que viene.

A forma de comentario, creo que te estás poniendo las cosas
másdifíciles a tí mismo utilizando SQL puro y duro. Si utilizaras el
adaptador para oracle tu vida sería muchísimo más sencilla. Eso es lo
que estoy haciendo yo. Cuando lo utilizas todo resulta mucho más fácil
porque puedes seguir las convenciones de Rails.

Pepe

On Feb 21, 10:01 am, Oraldo alarcon removed_email_address@domain.invalid


#18

Hola otra vez,

Para tu información y por si acaso te interesa, he intentado usar el
paginador de Rails pero no me ha funcionado. La razón es que con Rails
2 han dejado de incluirlo. En el libro “The Rails Way” he encontrado
información sobre el tema y parece que hay 2 versiones de paginadores
que se pueden instalar, uno es un “plugin” y supuestamente se puede
instalar con el siguiente comando:

[ruby] script/plugin install
svn://errtheblog.com/svn/plugins/will_paginate

Lo he intentado y la instalación parece funcionar pero en realidad en
mi caso no ha pasado nada y no se ha instalado nada.

La otra opción es un “gem” que se puede instalar con el siguiente
comando:

gem install paginator

Esto sí ha funcionado y es muy sencillo de utilizar. Aparte de seguir
las instrucciones que se pueden encontrar en la documentación (http://
paginator.rubyforge.org/) debes añadir lo siguiente en
“environment.rb” (al final del fichero):

require ‘paginator’

Espero que ésto te ayude. Buena suerte.

Pepe


#19

hola hermano un saludo fuerte
men me puse a hacer lo que me dijistes pero tampoco funciona medio he
resuelto el problema de esta manera
sql = autosys_db.prepare(“SELECT mtin_descri,mtin_mtin FROM re_tmtinv
WHERE rownum <=5”) con este codigo solo puedo ver los primeros 5 pero no
me deja ver los que siguen estuve investigando un poco mas me encontre
otros metodos pero no se como adaptarlo 1.-SELECT * FROM (SELECT /*+
FIRST_ROWS(n) */ *, ROWNUM rnum FROM (re_tmtinv) WHERE ROWNUM <=
limite-supWHERE rnum >= limite-inf;
2.-

SELECT FROM (SELECT /+ FIRST_ROWS(10) / @limit., ROWNUM rnumFROM
(SELECT id, mtin_mtin FROM re_tmtinv ORDER BY id, rowid) WHERE ROWNUM <=
20) WHERE rnum >= 10;
este no me deja hacer nada por el tipo de version

3.-SELECT TOP 10 t.* FROM re_tmtinv as t where t.id = not in( SELECT
TOP 0 id from re_tmtinv order by id desc )order by t.id desc
por casualidad has coseguido algo mejor
espero su pronta respuesta gracias

oraldo alarcon
removed_email_address@domain.invalid


#20

Hola otra vez.

A mí me funcionó perfectamente el “gem”, pero he estado jugando con el
código y parece ser que lo he estropeado. Ahora estoy haciendo otras
cosas, pero en cuanto tenga un momento (posiblemente esta noche) y lo
resuelva te pongo aquí el ejemplo del código que he utilizado para ver
si siguiéndolo te funciona el tuyo.

Pepe

On Feb 26, 4:37 pm, Oraldo alarcon removed_email_address@domain.invalid