Forum: Rails-ES Añadir un controlador para otra base de datos.

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Bf5029f5ef591083a0f6431ba522313b?d=identicon&s=25 Agustin Revert (Guest)
on 2007-06-05 12:59
(Received via mailing list)
Buenas:
Tengo una aplicación escrita en una base de datos llamada UNIVERSE de
IBM.
He conseguido la conexión en RUBY en WIN pero no se como implementarla
dentro de RAILS. Os pongo el ejemplo de conexión:

require 'win32ole'

class SesionUniverse

  def initialize
    @uv = WIN32OLE.new('UniVerse.Session.1')
  end

  def conectar(servidor, usuario, contra, cuenta = 'POSVENTA5')
    @servidor = servidor
    @usuario = usuario
    @contra = contra
    @cuenta = cuenta

    reconectar
  end

  def reconectar(cuenta = nil)
    @cuenta = cuenta if cuenta

    @uv.HostName = @servidor
    @uv.UserName = @usuario
    @uv.Password = @contra
    @uv.AccountPath = @cuenta

    @uv.connect
  end

  def desconectar
    @uv.disconnect
  end

  def OConv(texto, mascara)
    @uv.OConv(texto, mascara)
  end

  def IConv(texto, mascara)
    @uv.IConv(texto, mascara)
  end

  def ejecutar(comando)
    @uv.Command.Text = comando
    @uv.Command.Exec

    @uv.Command.Response
  end

  def leer_registro(fichero, id)
    f = @uv.OpenFile(fichero)
    f.RecordId = id
    f.Read

    f.Record.TextValue
  end

end


uv = SesionUniverse.new
uv.conectar('200.1.1.125', 'quiterpo', '100495po', 'POSVENTA5')
uv.ejecutar('DATE.FORMAT ON')

puts uv.ejecutar('DATE')
puts uv.IConv('10/04/1995', 'D4/')
puts uv.OConv(10000,'D4/')

puts '='*80
puts uv.leer_registro('BP','WINSCR1')
puts '='*80

uv.desconectar
1f2eadfb41362800ebc2cf211b91d0f7?d=identicon&s=25 javier ramirez (Guest)
on 2007-06-05 13:48
(Received via mailing list)
Hola,
>
> Tengo una aplicación escrita en una base de datos llamada UNIVERSE de
> IBM. He conseguido la conexión en RUBY en WIN pero no se como
> implementarla dentro de RAILS. Os pongo el ejemplo de conexión:
Para poder utilizar la conexión directamente desde una aplicación rails
"a pelo" puedes meter la clase SessionUniverse en el directorio lib y
convertirla en un singleton para poder tirar del objeto conexión sin
tener que abrirla cada vez.

Si lo que quieres es usarla en Rails con todas las de la ley, con
ActiveRecord, entonces tienes que hacerte el adaptador para rails. La
verdad es que lleva un trabajillo montarse uno. Si le echas un ojo al
código de rails debajo de
active_record/lib/active_record/connection_adapters y
active_record/lib/active_record/vendor verás de lo que te hablo.

saludos,

javier ramirez
1f2eadfb41362800ebc2cf211b91d0f7?d=identicon&s=25 javier ramirez (Guest)
on 2007-06-05 14:05
(Received via mailing list)
> Si lo que quieres es usarla en Rails con todas las de la ley, con
> ActiveRecord, entonces tienes que hacerte el adaptador para rails.
o... si el rendimiento no es un factor fundamental, puedes ver si hay un
adaptador odbc/jdbc para universe y usarlo desde un adaptador rails a
través de él.

saludos,

j
This topic is locked and can not be replied to.