ciao
sto sviluppando un’applicazione in Rails; utlizzo come DB–> FIREBIRD.
Non riesco ad inserire i dati nel DB in quanto ho dei problemi con i
campi VARCHAR obbligatori che devono avere un valore di DEFAULT. Posso
agire sul modello in modo da specificare il valore di default
direttamente da lì?
ERRORE
FireRuby::FireRubyException: Error preparing a SQL statement.
Dynamic SQL Error
SQL error code = -206
Column unknown
M
can’t format message 13:794 – message file c:\ruby\firebird.msg not
found
SQL Code = -206
Firebird Code = 335544569
: SELECT CAST(“M” AS VARCHAR(1)) FROM RDB$DATABASE
SQL
CREATE TABLE PAZIENTI (
PRG INTEGER DEFAULT 0 NOT NULL,
SESSO VARCHAR(1) DEFAULT “M” NOT NULL,
NOME VARCHAR(50) NOT NULL,
COGNOME VARCHAR(50) NOT NULL
)
ciao
sto sviluppando un’applicazione in Rails; utlizzo come DB–> FIREBIRD.
Non riesco ad inserire i dati nel DB in quanto ho dei problemi con i
campi VARCHAR obbligatori che devono avere un valore di DEFAULT. Posso
Column unknown
M
: SELECT CAST(“M” AS VARCHAR(1)) FROM RDB$DATABASE
CREATE TABLE PAZIENTI (
PRG INTEGER DEFAULT 0 NOT NULL,
SESSO VARCHAR(1) DEFAULT “M” NOT NULL,
NOME VARCHAR(50) NOT NULL,
COGNOME VARCHAR(50) NOT NULL
)
Forse non ho capito il tuo problema, ma prova con “select SESSO from
pazienti” …
Eheheh … mi sa che mi sono spiegato male … magari fosse così
facile come dici tu!
Ho risolto in parte, nel senso che dichiarando i valori di default con i
singoli apici ( ‘M’ ) anzichè quelli doppi ( “M” ) RUBY mi permette di
scrivere nel DB. Questo è lo script corretto:
CREATE TABLE PAZIENTI (
PRG INTEGER DEFAULT 0 NOT NULL,
SESSO VARCHAR(1) DEFAULT ‘M’ NOT NULL,
NOME VARCHAR(50) NOT NULL,
COGNOME VARCHAR(50) NOT NULL
)
RUBY utilizza di default il DIALECT 3 … mentre quello che usa il mio
DB è il DIALECT 1.
Dato che il DB è presistente da anni non posso crearmi le tabelle come
voglio io … anche perchè le tabelle sono legate a dei TRIGGER … per
cui dovrei prima cancellare i trigger, poi modificare i valori di
default con un altra query (che non ho riportato quì) e una volta fatto
questo ripristinare i trigger … non so se ho reso la complessità del
problema :() !
Se qualcuno sa come fare per impostare il DIALECT di RUBY all’ 1 dai
file di configurazione … me lo faccia SAPERE! Ve ne sarei molto
grato!!! Possibile che non vi si è mai presentato questo problema?!?
P.S)Dove trovo degli esempi ben fatti? Sulle API spiega le varie
chiamate ma di esempi ne vedo ben pochi
ciao
sto sviluppando un’applicazione in Rails; utlizzo come DB–> FIREBIRD.
Non riesco ad inserire i dati nel DB in quanto ho dei problemi con i
campi VARCHAR obbligatori che devono avere un valore di DEFAULT. Posso
Column unknown
M
: SELECT CAST(“M” AS VARCHAR(1)) FROM RDB$DATABASE
CREATE TABLE PAZIENTI (
PRG INTEGER DEFAULT 0 NOT NULL,
SESSO VARCHAR(1) DEFAULT “M” NOT NULL,
NOME VARCHAR(50) NOT NULL,
COGNOME VARCHAR(50) NOT NULL
)
Forse non ho capito il tuo problema, ma prova con “select SESSO from
pazienti” …
Eheheh … mi sa che mi sono spiegato male … magari fosse così
facile come dici tu!
RUBY utilizza di default il DIALECT 3 … mentre quello che usa il mio
DB è il DIALECT 1.
Non so nulla di Firebird e dialects; ma sembra di capire che il tuo
problema è a livello di db adapter. Se non riesci a risolverlo
mandando direttamente tu delle query sql al database in fase di
inizializzazione di rails, forse ti conviene modificare l’adapter per
Firebird.
Per il momento ho risolto modificando i default delle tabelle
scrivendoli con i singoli apici ( ’ ) … è stato un lavoraccio perchè ho
dovuto droppare trigger, view, FK ecc… cambiare i DEFAULT dei campi
NOT NULL e poi ho ricreato trigger, view, FK.
Eheheh … mi sa che mi sono spiegato male … magari fosse cos�
facile come dici tu!
RUBY utilizza di default il DIALECT 3 … mentre quello che usa il mio
DB � il DIALECT 1.
Non so nulla di Firebird e dialects; ma sembra di capire che il tuo
problema � a livello di db adapter. Se non riesci a risolverlo
mandando direttamente tu delle query sql al database in fase di
inizializzazione di rails, forse ti conviene modificare l’adapter per
Firebird.
M
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.