Προς το περιεχόμενο

ODBC connection σε postgresql


nikolaos_

Προτεινόμενες αναρτήσεις

Δημοσ.

(1) Το ερώτημα που σκοτώνει είναι... πώς γίνεται σε Javascript μέσα σε ένα (32-bit) σύστημα Linux (Ubuntu);

 

(2) Πριν το δεύτερο ερώτημα χωράει ένας πρόλογος:

 

Για το ερώτημα (1) που είπα, προϋπόθεση είναι να έχω ODBC για την postgresql.

Αυτό η αλήθεια είναι ότι με πολύ ψάξιμο μπόρεσα και το βρήκα. Χρησιμοποίησα το unixODBC που ήταν εγκατεστημένο ήδη στη δική μου διανομή. Από ό,τι κατάλαβα, χρειαζόταν μόνο ένα configuration για την postgresql.

 

Είδα τις κατά τ' άλλα καλές οδηγίες από αυτόν εδώ.

 

Παραπλανήθηκα νομίζοντας πως το driver που χρειαζόμουν ήταν το /usr/lib/odbc/libodbcpsql.so

Έκανα λάθος (και χτυπιόμουν για ώρες) γιατί το σωστό αρχείο είναι το /usr/lib/odbc/psqlodbcw.so το οποίο εμφανίζεται με την εγκατάσταση του (sudo apt-get install) odbc-postgresql.

Μόλις κατάλαβα το λάθος μου, μπήκα κατευθείαν στο /etc/odbcinst.ini και έγραψα:

>[PostgreSQL Unicode]
Description = PostgreSQL ODBC driver (Unicode version)
Driver      = /usr/lib/odbc/psqlodbcw.so
Setup       = /usr/lib/odbc/libodbcpsqlS.so
Debug       = 0
CommLog     = 0
FileUsage   = 1
UsageCount  = 1

 

Προδιαγραφές για άλλα ODBC drivers βρήκα σε αρκετές σελίδες, η πιο καλή μου φάνηκε αυτή εδώ.

 

Κατόπιν έφτιαξα το /etc/odbc.ini

>[testpostgresql]
Driver	 = /usr/lib/odbc/psqlodbcw.so
SERVER	 = localhost
PORT	 = 5432
DATABASE = basi_dedomenon

χωρίς να βάλω username, password.

Ο χρήστης που μπορεί να μπαίνει στον server της postgresql λέγεται postgres.

 

Δοκιμάζω λοιπόν τις συνδέσεις με τη βοήθεια του isql

>$ isql -v testpostgresql
[08001][unixODBC]FATAL:  Ident authentication failed for user "nikolaos_"
[iSQL]ERROR: Could not SQLConnect

Κατάλαβα ότι χρειάζεται τον σωστό χρήστη, γιατί αλλιώς παίρνει τον linux user.

 

>$ isql -v testpostgresql postgres *password*
[08001][unixODBC]Could not connect to the server;
Could not connect to remote socket immedaitely
[iSQL]ERROR: Could not SQLConnect

Εδώ προβληματίζομαι, αλλά κάνω μια τρίτη δοκιμή.

 

>$ sudo su postgres
postgres@XXX:~$ isql -v testpostgresql
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> quit
postgres@XXX:~$ exit
$

Η τρίτη απόπειρα στέφεται από επιτυχία, το odbc είναι εντάξει, αλλά έχω την απορία για τις άλλες δυο απόπειρες που απέτυχαν.

Μήπως θα αποτύχουν όταν δοκιμάσω να συνδεθώ στον javascript κώδικα;

 

(3) Η ερώτηση απλά εξειδικεύει το (1), η σύνδεση θα γίνει με κάποιον κώδικα javascript σαν αυτό:

>var ConnDB = new ActiveXObject("ADODB.Connection");   
ConnDB.ConnectionString="DRIVER={PostgreSQL ODBC driver (Unicode version)};server=localhost;port=5432;database=basi_dedomenon;uid=postgres;pwd=*password*;";       
ConnDB.Open();

και δεν εννοώ το connection string, αλλά το ActiveXObject("ADODB.Connection") γιατί μου φαίνεται ότι αυτό κολλάει σε προϊόντα Microsoft (SQL Server, Access). Δεν ξέρω καν αν λειτουργεί έτσι σε MySQL, πόσο μάλλον σε Postgresql.

Έτσι θα γίνει, ή κάτι άλλο;

 

Έψαξα όσο μπορούσα το διαδίκτυο, δεν βρήκα κάτι αξιόλογο. Οπότε θα χρειαστώ τα φώτα σας.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...