mydb.fdb on windows firebird 2.0.3.12981
step_1
gbak.exe -v -t -user sysdba -password ****** 127.0.0.1/3050:D:\webdb
\PROD\mydb…fdb D:\webdb\back\mydb.fbk
on server linux firebird 2.1.2.18118
step_2
linux-server:# ftp mydb.fbk
step_3
linux-server:# gbak -c -v … mydb.fbk mydb.fdb
s.o.linux ubuntu server 9.0.4
firebird version 2.1.2.18118
rails 2.3.2
ruby 1.8.7 patchlevel 72
rake 0.8.5
fb_adapter 0.5.8
fb 0.5.9
passenger 2.2.2
nginx 0.6.36
query from isql
select sum(val_emessi) from g1_items where licence_id = 6 AND DATA >=
‘2009/01/02’ AND DATA <= ‘2009/01/02’
**** val_emessi => decimal(8,2) ***
result => 2837.00 …fine
query from rails
condizioni = “data >= ‘2009/01/02’ and
data <= ‘2009/01/02’ and
licence_id = 6”
@emessi = G1Item.sum(‘val_emessi’, :conditions => condizioni)
@emessi.class => BigDecimal
result => 283700.00 … error
idem for G1Item.find_by-sql(“select sum(val_emessi as somma …”)
result => 283700.00 … error
In windows
activerecord-firebird-adapter (1.0.0.9250)
fireruby (0.4.3)
rails 2.3.2
firebird version 2.0.3.12981
works fine.
… idea?
ciao
Hi Mary,
I’m Italian but I write the response in eglish (sorry for my poor
english)…
Some time ago I had a problem like your under FireBird 1.5.x and
FireRuby 0.4.1 just after a db restore.
The issue was with casting function on the rails firebird adapter the
error was something like “cannot cast CAST(DECIMAL(0,0)”…
I remember that I was able to solve the problem on firebird_adapter.rb
executing something like sql_query.gsub!(“DECIMAL(0,0)”,
“DECIMAL(0,18)”) before the returning row.
Hope it helps…
Gianluca T. wrote:
Hi Mary,
I’m Italian but I write the response in eglish (sorry for my poor
english)…
Some time ago I had a problem like your under FireBird 1.5.x and
FireRuby 0.4.1 just after a db restore.
The issue was with casting function on the rails firebird adapter the
error was something like “cannot cast CAST(DECIMAL(0,0)”…
I remember that I was able to solve the problem on firebird_adapter.rb
executing something like sql_query.gsub!(“DECIMAL(0,0)”,
“DECIMAL(0,18)”) before the returning row.
Hope it helps…
Il mio problema è che non viene generato nessun errore.
Semplicemente il valore è aumentato di un fattore 100.
Il problema sembra dei metodi di classe tranne find.
Ciao
Ok ho visto…
mi sembra che stai comprando l’errore con versioni diverse dei vari
camponenti:
windows (ok) => FireBird 2.0 + activerecord-firebird-adapter + FireRuby
linux (errore) => FireBird 2.1 + fb_adapter + fb
Magari sto dicendo una cosa ovvia o magari banale ma secondo me dovresti
provare a utilizzare su linux gli stessi componenti che stai utilizzando
su windows (activerecord-firebird-adapter + FireRuby)
Gianluca T. wrote:
Ok ho visto…
mi sembra che stai comprando l’errore con versioni diverse dei vari
camponenti:
windows (ok) => FireBird 2.0 + activerecord-firebird-adapter + FireRuby
linux (errore) => FireBird 2.1 + fb_adapter + fb
Magari sto dicendo una cosa ovvia o magari banale ma secondo me dovresti
provare a utilizzare su linux gli stessi componenti che stai utilizzando
su windows (activerecord-firebird-adapter + FireRuby)
In windows non ci sono ancora per FireBird 2.1
Esistono solo fb_adapter + fb che sono per linux.
Il motivo di spostare a linux è proprio il ritardo di aggiornamento
delle
librerie.
Fanno prima le cose per linux.
Ciao e grazie per l’interessamento
Confermato:
Data: 23/05/2009 11:33
Mittente: Brent R.
I can confirm there is a bug interpreting the results of aggregate
operators such as SUM and AVG. I suggest performing these operations
in code, rather than in the database, until a fix can be made.
Brent
http://rubyforge.org/tracker/index.php?func=detail&aid=25938&group_id=1774&atid=6946