Sybase + Ror + quasi fatta

Ciao a tutti,
tempo fa mi lamentavo del fatto che non riuscivo ad utlizzare Sybase con
Ror
(SQL Anywhere 9)…sono riuscito a connettermi finalmente e a generare
gli
scaffold (a proposito ringrazio David e Antonio per la collaborazione).
Il problema è che mi devo connettere ad un DB progettato molto tempo fa e
che quindi non segue le regole di Ror sui nomi delle tabelle e delle
chiavi.
Ho letto il documento "
Peak Obsession" ma
sinceramente mi son perso e non capisco alcune cose. Prima di combattere
contro i mulini a vento e rigettarmi sul documento vorrei chiedervi se è
possibile usare un DB legacy oppure è una speranza vana. Ci sono
particolare
problemi?
Scusate i pochi dettagli ma devo valutare Ror in azienda per
(eventualmente)
gettare alle ortiche dot.net e mi rimane pochissimo tempo per dare una
risposta. Se supero il problema dei DB legacy penso che sia praticamente
fatta però :-)))

Grazie
Ciao
Maurizio

P.S se interessa io ho risolto il problema dell’utilizzo di Sybase Sql
Anywhere 9 utilizzando l’adapter “sybaseanywhere_adapter”. L’errore che
commettevo è che l’adapter che viene installato va bene per ASE e non per
l’ASA…

Wow. Anch’io ho lo stesso problema. Cioè, ho un DB Sybase (versione 6
credo) e vorrei connettermici da ruby (rails, ma non solo). Avevo visto
che il driver che c’era andava bene per ASE e non per ASA e avevo pure
cominciato a ravannare nel codice C del extension PHP per capire se
potevo usarlo per farne uno per ruby…

Mica potresti descrivere un po’ più nel dettaglio come hai fatto?

I DB legacy si possono usare e anche piuttosto bene. Dai un’occhiata a
“composite_primary_keys” (è un gem) che ti permette di usare db con
chiavi primari multipli. Quello è uno dei problemi più comuni nel uso di
DB vecchi.

ActiveRecord è piuttosto duttile alla fine, è solo che gli sviluppatori
non amano darlo troppo a vedere!

maurizio maurizio wrote:

Peak Obsession" ma
Grazie
http://lists.ruby-it.org/mailman/listinfo/ml


“Remember, always be yourself. Unless you suck.” - Joss Whedon

Ciao,
io ho fatto nel seguente modo. Premetto che ho eseguito le prove su una
vecchia macchina con WIN2000 e SQL Anywhere Studio 9.0. Accedo al DB
tramite ODBC (un DSN di sistema).
Come dicevo ho installato il “sybaseanywhere_adapter” ed ho seguito le
istruzioni del documento
http://wiki.rubyonrails.org/rails/pages/SybaseASA” fino a quando
parla di Web service. In particolare ho settato il file “database.yml”
nel seguente modo:
adapter: sybaseanywhere
dsn: Nome dsn
username: dba (quella di default)
password: sql (quella di default)
host: localhost
mode: ODBC

Tieni presente che l’ultima riga è fondamentale se vuoi accedere tramite
ODBC. Non solo ma dal documento sembra sia NECESSARIA la versione 9.0
dell’ASA.
Ha funzionato tutto al primo tentativo :slight_smile:
Spero di esserti stato utile, fammi sapere se ci sei riuscito.

Ciao
Maurizio

david wrote:

Wow. Anch’io ho lo stesso problema. Cio�, ho un DB Sybase (versione 6
credo) e vorrei connettermici da ruby (rails, ma non solo). Avevo visto
che il driver che c’era andava bene per ASE e non per ASA e avevo pure
cominciato a ravannare nel codice C del extension PHP per capire se
potevo usarlo per farne uno per ruby…

Mica potresti descrivere un po’ pi� nel dettaglio come hai fatto?

I DB legacy si possono usare e anche piuttosto bene. Dai un’occhiata a
“composite_primary_keys” (� un gem) che ti permette di usare db con
chiavi primari multipli. Quello � uno dei problemi pi� comuni nel uso di
DB vecchi.

ActiveRecord � piuttosto duttile alla fine, � solo che gli sviluppatori
non amano darlo troppo a vedere!

maurizio maurizio wrote:

Peak Obsession" ma
Grazie
http://lists.ruby-it.org/mailman/listinfo/ml


“Remember, always be yourself. Unless you suck.” - Joss Whedon

Un saluto cordiale a tutti da parte di un nuovo entrato nel mondo di
Ruby (provenienza C#).
E ora la classica domandina da niubbo:

nome = gets
print “ciao “,“pippo”,”!”
print “ciao “, nome,”!”

L’output di questo semplicissimo programmino è il seguente:

ciao pippo!ciao pippo
!

Il punto esclamativo nel secondo print me lo trovo a capo…in pratica è
come se mi portassi dietro l’enter che ho dato per acquisire la
variabile nome. Esiste un modo semplice per evitare questo per me strano
comportamento?
Grazie e scusate per la banalità del quesito

–Renato

quando fai un gets ti porti dietro anche l’enter premuto dall’utente :slight_smile:

fai un chop sul nome e dovresti poterlo buttare via… nome.chop

On 9/19/06, Renato [email protected] wrote:


Chiaroscuro

Liquid Development: http://liquiddevelopment.blogspot.com/

Funziona, grazie :slight_smile:
Ora mi vado a cercare qualcosa su questo chop…
Un saluto.

Ok. Appena ho un attimo di tempo farò delle prove. La mia situazione è
più incasinata però:

  • DB della versione sbagliata (ma anche per PHP dice che funziona solo
    con v9 in sù, ma poi invece va lo stesso con 'sto canchero che abbiamo
    noi)
  • sono su Linux, quindi “DSN di sistema” e ODBC è un po’ più incasinato
    (o mi sbaglio? forse è facilissimo)
  • il DB è lontano, fuori controllo e per politiche interne non posso
    sperare in molti aiuti. Ho un utente e un IP e basta, quindi le prove si
    fanno alla cieca…

Racconto queste cose per dire che spesso i problemi con “database
legacy” spesso non sono tecnici. Perché non aggiornare il DB? Perché non
posso parlare con i tecnici dall’altra parte della città liberamente?

:-/

Comunque farò il tentativo! Usare PHP solo perché sa parlare con Sybase
pare STUPIDO.

Lo farò senz’altro!

Ciao, in effetti la tua situazione non mi sembra affatto semplice.
Comunque ti chiederei di divulgare quello che eventualmente scopri via
via perchè penso sia di interesse a molti.
Grazie
Ciao
Maurizio

david wrote:

Ok. Appena ho un attimo di tempo farò delle prove. La mia situazione è
più incasinata però:

  • DB della versione sbagliata (ma anche per PHP dice che funziona solo
    con v9 in sù, ma poi invece va lo stesso con 'sto canchero che abbiamo
    noi)
  • sono su Linux, quindi “DSN di sistema” e ODBC è un po’ più incasinato
    (o mi sbaglio? forse è facilissimo)
  • il DB è lontano, fuori controllo e per politiche interne non posso
    sperare in molti aiuti. Ho un utente e un IP e basta, quindi le prove si
    fanno alla cieca…

Racconto queste cose per dire che spesso i problemi con “database
legacy” spesso non sono tecnici. Perché non aggiornare il DB? Perché non
posso parlare con i tecnici dall’altra parte della città liberamente?

:-/

Comunque farò il tentativo! Usare PHP solo perché sa parlare con Sybase
pare STUPIDO.