interfacciarsi ad un database PostgreSQL usando ODBC?

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
Karma
Linux 2.x
Linux 2.x
Messaggi: 285
Iscritto il: mar 30 ago 2005, 0:00
Slackware: 12.0
Kernel: 2.6.23.1
Desktop: KDE 3.5
Località: Trento

interfacciarsi ad un database PostgreSQL usando ODBC?

Messaggio da Karma »

Ciao a tutti!
Sto scrivendo un codice in php che dovrebbe comunicare con databases in postgresql. Invece però dei comandi pg_connect, etc... per psql (con i quali comunque il codice è già verificato funzionare), volevo farlo usando odbc (per migliorare la compatibilità in caso di databases di altro tipo (mysql, oracle,odbc) etc...).
Ho già installato unixodbc (sto sviluppando sotto ubuntu... scelta impostami e discutibile, lo so...) ma comunque non riesco neanche a creare la connessione con odbc_connect.
Mi ritorna, infatti, l'errore:

Codice: Seleziona tutto

SQL Error: [unixODBC][Driver Manager] Data source name not found and no default driver specified, SQL state IM002 in SQLConnect in ...
C'è qualcuno di voi che ha già avuto esperienze con postgresql tramite odbc e che riuscirebbe ad aiutarmi nella configurazione per capire cosa manca?

Grazie mille a tutti!!!!

Karma

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: interfacciarsi ad un database PostgreSQL usando ODBC?

Messaggio da conraid »

Ma è uno sfizio tuo o per necessità?
La compatibilità con altri sistemi la trovi usando alcune librerie PHP che si sovrappongono tra te e il DB, quale che sia.
Una delle tante è http://adodb.sourceforge.net/
Perché complicarsi la vita?

Avatar utente
Karma
Linux 2.x
Linux 2.x
Messaggi: 285
Iscritto il: mar 30 ago 2005, 0:00
Slackware: 12.0
Kernel: 2.6.23.1
Desktop: KDE 3.5
Località: Trento

Messaggio da Karma »

Purtroppo è una richiesta esplicita fattami dall'ingegnere per cui sto lavorando...
Grazie comunque...

Karma

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Messaggio da conraid »

Karma ha scritto:Purtroppo è una richiesta esplicita fattami dall'ingegnere per cui sto lavorando...
immagino che hai già seguito il documento http://www.unixodbc.org/odbcinst.html, che è il primo che ritorna google con "unixobdc postgres" che consiglia di usare /etc con directory di configurazione. Non ho mai usato unixodbc se non tanti anni fa ma per motivi diversi, solo che ho letto di problemi che si risolvevano usando /etc come path del file .odbc.ini

Non so dirti altro purtroppo

Avatar utente
Karma
Linux 2.x
Linux 2.x
Messaggi: 285
Iscritto il: mar 30 ago 2005, 0:00
Slackware: 12.0
Kernel: 2.6.23.1
Desktop: KDE 3.5
Località: Trento

Messaggio da Karma »

Effettivamente sì, ma dopo che me l'hai detto mi sono accorto che il comando

Codice: Seleziona tutto

odbcinst -i -s -f template_file
con il mio template non salvava niente (senza, peraltro resituirmi alcun errore). Allora ho aggiunte le righe a mano nel file /etc/odbc.ini ed adesso l'errore è cambiato:
SQL error: [unixODBC][Driver Manager]Driver's SQLAllocHandle on SQL_HANDLE_HENV failed, SQL state IM004 in SQLConnect in
Che non so se sia peggio o meglio... Con la stringa esatta di questo errore google ritorna solo due risultati. In uno di questi dice che è un bug di php, risolvibile con:
Just add two line into /etc/rc.d/init.d/httpd :
DB2INSTANCE=db2inst1
export DB2INSTANCE
Peccato che quel file io non lo abbia e ora sto cercando di capire dove dovrei mettere quelle righe!

Comunque grazie della risposta, se non avesso ricontrollato non me ne sarei mai accorto...

Karma

Avatar utente
conraid
Staff
Staff
Messaggi: 13631
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Messaggio da conraid »

sembra una esportazione di variabile (ma per DB2?), da mettere prima di lanciare apache, quindi sulla slackware direi /etc/rc.d/rc.httpd
Ma detto tra noi "so na sega Ubuntu dove lo mette"

Avatar utente
Karma
Linux 2.x
Linux 2.x
Messaggi: 285
Iscritto il: mar 30 ago 2005, 0:00
Slackware: 12.0
Kernel: 2.6.23.1
Desktop: KDE 3.5
Località: Trento

Messaggio da Karma »

Ma detto tra noi "so na sega Ubuntu dove lo mette"
Neanche io... è questo il problema!!!!

Comunque adesso vedo di fare qualche ricerca approfondita e poi ti faccio sapere!
Per intanto, grazie dell'aiuto!

Karma

Rispondi