Ejecutar consulta sql en un controller

Hola buenas!. Se que esta debe ser una pregunta un poco estúpida, pero
he buscado y no lo he encontrado. Como puedo ejecutar una consulta sql
(un INSERT INTO) en un controller??.

Todo esto viene por aquello de que ruby no acepta fechas anteriores a
1970. ME comentaron que podía meter ese campo directamente con sql.

Un saludo y gracias de antemano

On 8/28/07, Marcos C. [email protected] wrote:

Hola buenas!. Se que esta debe ser una pregunta un poco estúpida, pero
he buscado y no lo he encontrado. Como puedo ejecutar una consulta sql
(un INSERT INTO) en un controller??.

No es buena idea ejecutar código de SQL desde un controlador…

Sin embargo, la forma sería:

id = Foo.connection.insert(‘INSERT INTO …’)

Siendo Foo el modelo al cual vas a insertar.

Todo esto viene por aquello de que ruby no acepta fechas anteriores a
1970. ME comentaron que podía meter ese campo directamente con sql.

Una prueba rápida (y la ausencia de quejas de mis clientes) me dicen
que tanto Date como Time aceptan fechas anteriores a 1970, se pueden
sumar, restar… ¿Podrías mandarnos un caso de prueba? Gracias :slight_smile:

Un saludo

A lo mejor es cosa del ajax-scaffold que uso y que esta deprecated en
favor de active-scaffold. El caso es que cuando meto una fecha anterior
a 1970 se cuelga.

Bueno muchas gracias, ahora el problema que tengo es que no le gusta el
formato que le mando a sql. Porque lo manda en plan Wed Aug 29 00:00:00
+0200 2007 y a sql no le gusta mucho. Sql espera algo tipo mes/dia/año
no?

Un saludo.

Si, uso sql server.

He mirado en los params y resulta que los campos de fecha que uso (de
tipo date_select) se dividen en 3 valores.

Ej: <%= date_select ‘candidato’, ‘fechaNacimiento’, :start_year => 1900,
:end_year => Time.now.year+5, :use_month_numbers => false, :order =>
[:day, :month, :year] %>
Aparece en los params como ‘candidato[fechaNacimiento(1i)]’,
‘candidato[fechaNacimiento(2i)]’ y ‘candidato[fechaNacimiento(3i)]’. Que
representan a año, mes y día (no se el orden).

O sea que básicamente lo que no consigo es acceder a esos campos.

Un saludo

On Aug 29, 2007, at 10:11 AM, Marcos C. wrote:

‘candidato[fechaNacimiento(2i)]’ y ‘candidato[fechaNacimiento
(3i)]’. Que
representan a año, mes y día (no se el orden).

Esos son nombres de campo especiales, y hacen que Rails construya
fechas a partir de ellos automaticamente.

Tienes dos problemas:

  • Fechas anteriores a 1970 en SQL Server. Instala este plugin:

    http://agilewebdevelopment.com/plugins/sqlserver_datetime_fix

  • No se entienden las fechas/timestamps usados en el SQL generado.
    Hasta donde yo he podido averiguar el adaptador de SQL Server hace lo
    correcto porque usa un formato ISO para las fechas que segun parece
    SQL Server deberia entender independientemente de locales, es un
    formato supuestamente portable. A mi me ha pasado el tener
    instalaciones aparentemente iguales en maquinas distintas, ambas en
    castellano y con SQL Server configurado en castellano. En una
    funciona el ISO, y en otra no.

Aqui prefiero no recomendarte nada porque no uso SQL Server mas que
esporadicamente y no se cual es la manera fina de tratar esto.

– fxn

On Aug 29, 2007, at 8:29 AM, Marcos C. wrote:

A lo mejor es cosa del ajax-scaffold que uso y que esta deprecated en
favor de active-scaffold. El caso es que cuando meto una fecha
anterior
a 1970 se cuelga.

Bueno muchas gracias, ahora el problema que tengo es que no le
gusta el
formato que le mando a sql. Porque lo manda en plan Wed Aug 29
00:00:00
+0200 2007 y a sql no le gusta mucho. Sql espera algo tipo mes/dia/año
no?

Estas usando SQL Server?

– fxn

Xavier N. wrote:

On Aug 29, 2007, at 10:11 AM, Marcos C. wrote:

‘candidato[fechaNacimiento(2i)]’ y ‘candidato[fechaNacimiento
(3i)]’. Que
representan a a�o, mes y d�a (no se el orden).

Esos son nombres de campo especiales, y hacen que Rails construya
fechas a partir de ellos automaticamente.

Tienes dos problemas:

  • Fechas anteriores a 1970 en SQL Server. Instala este plugin:

    http://agilewebdevelopment.com/plugins/sqlserver_datetime_fix

  • No se entienden las fechas/timestamps usados en el SQL generado.
    Hasta donde yo he podido averiguar el adaptador de SQL Server hace lo
    correcto porque usa un formato ISO para las fechas que segun parece
    SQL Server deberia entender independientemente de locales, es un
    formato supuestamente portable. A mi me ha pasado el tener
    instalaciones aparentemente iguales en maquinas distintas, ambas en
    castellano y con SQL Server configurado en castellano. En una
    funciona el ISO, y en otra no.

Aqui prefiero no recomendarte nada porque no uso SQL Server mas que
esporadicamente y no se cual es la manera fina de tratar esto.

– fxn

Hola, no me he dado cuenta y he contestado aquí, pero prefiero tratar
este tema en el hilo de “Fechas anteriores a 1970”.

En ese hilo intenté instalar ese plugin sin éxito. Al final copie la
clase del fix en lib e hice un require nombreclase en los model. El
resultado fue que no funcionaba ninguna fecha y me daba un error
siempre.

Muchas gracias

On Aug 29, 2007, at 10:40 AM, Marcos C. wrote:

Hola, no me he dado cuenta y he contestado aquí, pero prefiero tratar
este tema en el hilo de “Fechas anteriores a 1970”.

En ese hilo intenté instalar ese plugin sin éxito. Al final copie la
clase del fix en lib e hice un require nombreclase en los model. El
resultado fue que no funcionaba ninguna fecha y me daba un error
siempre.

Para terminar en este hilo, me pregunto si estara relacionado con el
problema del formato.

Si la relación es que como no puedo (no tengo tiempo suficiente) ponerme
a probar mil formas de solucionar el problema de las fechas. Pues he
decidido meterlas con sql.

Para ello tengo k interceptar las fechas y conseguir su valor. Luego
darles un valor válido (por ejemplo el día de hoy) y entonces hacer el
.save .update. Y por último meter el valor obtenido de los campos select
en la base de datos mediante una consulta sql.

Pero el problema está en que no soy capaz de acceder a esos campos.

Un saludo y si se te ocurre como acceder te estaría eternamente
agradecido.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs