Añadir un controlador para otra base de datos


#1

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


#2

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


#3

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