Stavo facendo un applicazione di prova con rails e DB2 per capirne le potenzialità , continuo su questo forum la mia odissea nel caso possa servire ad altri. Premetto che ho avuto non pochi problemi nell'installare la versione corretta del DB2 connect ma grazie anche all'aiuto di esperti come Antonio Cangiano ho risolto. In questa discussione si tratta la questione della connessione: http://www.ruby-forum.com/topic/123595 Dopo aver verificato l'esito positivo della connessione tra ruby e db2 il passo successivo era l'utilizzo di rails. Tra i problemi iniziali c'era (e ho tutt'ora) quello dello schema nel file database.yml development: adapter: ibm_db database: *** username: *** password: *** schema: myschema host: *** port: *** se lo imposto ottengo questo messaggio [IBM][CLI Driver][DB2] SQL0567N "myschema" non è un ID di autorizzazione valido. SQLSTATE=42503 SQLCODE=-567 purtroppo l'ho superato solo tramite una toppa nel modello ma non so se in futurò avrò problemi per esempio quello che descrivo sotto per l'update, la toppa è questa: set_table_name "myschema.mytable" Un altro problema che ho avuto riguardava l'estrazione dei dati: @t = Table1.find(:all, :include => :mytable2, :select => "myschema.mytable1.ID, myschema.mytable1.CAMPO1, myschema.mytable1.CAMPO2, myschema.mytable2.ID", :conditions=>["myschema.mytable1.datains >= ? AND myschema.mytable1.datains <= ?",params[:ricerca][:data_da],params[:ricerca][:data_a] ] ) Non so se è un baco o sbaglio qualcosa io ma usando quella find, specificando i campi della select e facendo l'include della seconda tabella, vengono estratti solo i due campi "id" delle due tabelle, tutti gli altri non ci sono. Inizialmente pensavo fosse dovuto alle tabelle molto grosse (con molti campi), poi girovagando su internet, ho risolto togliendo l'include della seconda tabella e mettendo questa nella select per far estrarre i campi: (Select count(*) From myschema.mytable2 Where myschema.mytable1.id = myschema.mytable2.mytable1_id) la find finale completa è diventata questa: @t = Table1.find(:all, :select => "myschema.mytable1.ID, myschema.mytable1.CAMPO1, myschema.mytable1.CAMPO2, (Select count(*) From myschema.mytable2 Where myschema.mytable1.id = myschema.mytable2.mytable1_id)", :conditions=>["myschema.mytable1.datains >= ? AND myschema.mytable1.datains <= ?",params[:ricerca][:data_da],params[:ricerca][:data_a] ] ) L'ho poi sostituita con la paginate ma il succo non cambia. Attualmente ho un altro problema. Riguarda l'aggiornamento dati ed è ancora più strano. Si può testare anche nella console, faccio un esempio che rende meglio: ruby script/console Loading development environment (Rails 2.0.2) >> t=Table1.find(1) => #<Table1 > >> t.autoritarilascio => "COMUNE DI " >> t.autoritarilascio="pippo" => "pippo" >> t.save => true >> t.autoritarilascio => "pippo" >> t=Table1.find(1) => #<Table1 > >> t.autoritarilascio => "COMUNE DI " >> t.save ha esito positivo ma non aggiorna il db, il modello si ma il db no. Guardando il log non effettua l'update, ci sono solo select, cosa può essere?
on 24.04.2008 11:58
on 25.04.2008 09:29
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Marco Mastrodonato wrote: > [...] Attualmente ho un altro problema. [...] Ciao Marco, potresti indicarmi le versioni in uso (ibm_db gem, db2 connect, iSeries, eccetera)? In questo modo posso segnalare i tre problemi riscontrati al team di sviluppo per cercare di ricrearli nel lab. Grazie, Antonio - -- http://antoniocangiano.com - Zen and the Art of Programming http://stacktrace.it - Aperiodico di resistenza informatica http://math-blog.com - Math Blog: Mathematics is wonderful! -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.8 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkgRiCgACgkQqCqsu0qUj9TltgCgo7n2kFknRfVFF9vIxlRENCR0 xioAn1PUFrmqVVwluUkuYMc+G5lrNO6s =WF04 -----END PGP SIGNATURE-----
on 28.04.2008 10:40
Ciao Antonio, intanto grazie a te per il continuo supporto! La versione di ibm_db è la 0.9.2, db connect è la 8.2 fix16, la versione server del DB la 8.1 Ibm_db, se usato da solo e fuori da rails non ha mai dato problemi, forse potrebbe essere l'adapter? Ho provato a debuggare ma non è un impresa semplice capire dove NON fa l'update, inizialmente pensavo ad una rollback o ad una commit non eseguita solo che non trovo l'update, credo non venga proprio eseguita altrimenti comparirebbe comunque nel log, dovrebbe.
on 29.04.2008 17:05
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Marco Mastrodonato wrote: | Ciao Antonio, intanto grazie a te per il continuo supporto! | La versione di ibm_db è la 0.9.2, db connect è la 8.2 fix16, la versione | server del DB la 8.1 | Ibm_db, se usato da solo e fuori da rails non ha mai dato problemi, | forse potrebbe essere l'adapter? | Ho provato a debuggare ma non è un impresa semplice capire dove NON fa | l'update, inizialmente pensavo ad una rollback o ad una commit non | eseguita solo che non trovo l'update, credo non venga proprio eseguita | altrimenti comparirebbe comunque nel log, dovrebbe. | Ciao Marco, se non appare nulla nei log, vuol dire che la query non viene inviata al db. Ho segnalato i problemi riscontrati al team di sviluppo e vedrò di tenerti aggiornato sugli svolgimenti nei prossimi giorni. Ciao, Antonio - -- http://antoniocangiano.com - Zen and the Art of Programming http://stacktrace.it - Aperiodico di resistenza informatica http://math-blog.com - Math Blog: Mathematics is wonderful! -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkgXOQoACgkQqCqsu0qUj9SB0gCdHgEZoZVZDEQWfaDxNaphdnqN Q04An1tFu3Gk6ghsPnsKDb6GpvPaU8U5 =LpX1 -----END PGP SIGNATURE-----
on 01.05.2008 15:39
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Marco Mastrodonato wrote: |>> t.autoritarilascio | => "COMUNE DI " | | t.save ha esito positivo ma non aggiorna il db, il modello si ma il db | no. Guardando il log non effettua l'update, ci sono solo select, cosa | può essere? Ciao Marco, tanto per togliersi il dubbio, il campo autoritarilascio è :string e non :text, giusto? Perché c'era un bug coi CLOB che è stato sistemato dall'update 0.9.4 della gemma. In ogni caso, potresti provare la nuova gemma e verificare se il problema sussiste ancora? Grazie, Antonio - -- http://antoniocangiano.com - Zen and the Art of Programming http://stacktrace.it | http://math-blog.com http://twitter.com/acangiano | http://flickr.com/acangiano -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkgZx9UACgkQqCqsu0qUj9QbDACfVGK0Cik5vfROyidh6QizAskj bBUAni6YDZR7a30EiY8CwOhet+ZzA55U =EkpL -----END PGP SIGNATURE-----
on 05.05.2008 15:00
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Marco Mastrodonato wrote: > > [IBM][CLI Driver][DB2] SQL0567N "myschema" non è un ID di > autorizzazione valido. SQLSTATE=42503 > SQLCODE=-567 Ciao Marco, Qual'è l'ultima query che appare nei log prima dell'errore? Se provi a lanciare il comando SET SCHEMA myschema da db2cmd cosa ottieni? Grazie, Antonio - -- http://antoniocangiano.com - Zen and the Art of Programming http://stacktrace.it | http://math-blog.com http://twitter.com/acangiano | http://flickr.com/acangiano -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.8 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkgfBKsACgkQqCqsu0qUj9RZ6QCePLjWUCE1bGUDMuOKVG9TKkvb NIkAn1Q3jgg4a+Ow6VDPfDC1DQ3mlJUB =Zlij -----END PGP SIGNATURE-----
on 05.05.2008 18:14
> tanto per togliersi il dubbio, il campo autoritarilascio � :string e non > :text, giusto? Perch� c'era un bug coi CLOB che � stato sistemato > dall'update 0.9.4 della gemma. > > In ogni caso, potresti provare la nuova gemma e verificare se il > problema sussiste ancora? Ciao Antonio, ho provato l'ultima versione della gemma ma purtroppo il problema rimane. Sul DB2, quel campo è un CHAR a lunghezza fissa, comunque ho provato anche con dei numerici ottenendo lo stesso risultato. Il log della put è questo, non è completo perchè il numero dei campi è altissimo e per praticità ho tagliato la stringa di log: Processing InquiryController#update_proposta (for 127.0.0.1 at 2008-05-05 17:59:36) [PUT] Session ID: BAh7BzoMY3NyZl9pZCIlMzk4YTZlYmYwMGYxYTBiZmU0Yzc4MGMwNTY1YjVh%0AN2UiCmZsYXNoSUM6J0FjdGlvbkNvbnRyb2xsZXI6OkZsYXNoOj Parameters: {"authenticity_token"=>"cc7e4ab7b1579f91abf931d1867841e692b5bfb2", "_method"=>"put", "action"=>"update_proposta", [4;35;1mProposta Load (0.031000)[0m [0mSELECT * FROM BAY2TEST.TB_PROPOSTE WHERE (BAY2TEST.TB_PROPOSTE.id = '42482') [0m Redirected to http://localhost:3004/inquiry Completed in 0.09400 (10 reqs/sec) | DB: 0.03100 (32%) | 302 Found [http://localhost/inquiry/update_proposta] Brevemente: Controller:Inquiry Action:update_proposta Schema:BAY2TEST Tabella:TB_PROPOSTE