Newsgroup: it.comp.lang.perl
Titolo: DBI: problemi in connessioni DSN-less


MIME-Version: 1.0
Content-Type: text/plain;
        charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
That, unfortunately, can be a bad message because of the way that
DBD::ODBC handles opening the database.  What's happening is that DBI
can't open the database using the "DSN-less" style open
(SQLDriverConnect) which fails and then tries to call SQLConnect,
which expects a 32? character or less DSN.  I hope to make this better
in the future...
------------------------------------------------------------------------------------------------------------------------------------
Sfrotunatamente non sono indicate soluzioni. Vorrei sapere se qualcuno
di voi ha vuto un problema del genere e come lo ha eventualmente
risolto.
Ciao

 risolto.
Ma scusa, hai una mail dell'autore del modulo DBD-ODBC che dice che non 
si puo' fare e coltivi ancora qualche speranza?
-- 
Saluti,
Giancarlo


Si. C' è gente intelligente ed esperta in giro su Internet e come sai
la speranza è l' ultima a morire... speravo in walk around o qualcosa
del genere.
Grazie comunque per il tuo interessamento.
Ciao

 del genere.
Ma se io avessi trovato una soluzione come prima cosa l'avrei segnalato 
all'autore e penso che ogni altra persona intelligente avrebbe fatto 
allo stesso modo.
-- 
Saluti,
Giancarlo

allo stesso modo.
Sarà, ma intanto la materia mi pare quantomeno controversa. Ho trovato
un signore, qui, a cui pare che la DNS-less funzioni benissimo:
# A Perl DSNless connection by Stephen V. Arehart:
# $DSN = 'driver={SQL
Server};Server=Server_name;database=database_name;uid=username;pwd=password;';
# $dbh = DBI -> connect("dbi:ODBC:$DSN") || die "Cannot Connect:
$DBI::errstr\n";
L' indirizzo:
http://faqchest.dynhost.com/prgm/dbi-l/dbi-99/dbi-9912/dbi-991200/dbi99120119_30559.html
Ciao

 $DBI::errstr\n";
Non mi sembra in disaccordo con il messaggio che hai postato prima.
Se non ho capito male succede che:
- Il collegamento DNSless fallisce
- DBI/DBD passa allora a tentare un SQLConnect
- nel tuo caso fallsce (diffcile riuscire in un SQLConnect su un file 
.mdb)
- in questo caso riesce in quanto trattasi di connessione a MS-SQL.
-- 
Saluti,
Giancarlo

- in questo caso riesce in quanto trattasi di connessione a MS-SQL.
Hai ragione, infatti ho clamorosamente sbagliato esempio.  Me ne
scuso.
A raddoppiare il disagio la classica: perldoc DBD::ODBC, lanciata
troppo tardi,  mi mostra:
Connect without DSN The ability to connect without a full DSN is
introduced in version 0.21.
    Example (using MS Access): my $DSN = 'driver=Microsoft Access
Driver     (*.mdb);dbq=\\\\cheese\\g$\\perltest.mdb'; my $dbh =
    DBI->connect("dbi:ODBC:$DSN", '','') or die "$DBI::errstr\n";
Siccome la mia versione del modulo e' superiore comincio ad avere la
sgradevole sensazione di non capire piů niente.
Ciao

 version1.201
Ma scusa, usa il modulo Win32::ODBC e non ti complicare la vita:
use Win32::ODBC;
$dsn = "DRIVER={Microsoft Access Driver
(*.mdb)};DBQ=c:\\inetpub\\wwwroot\\mysite\\my_database.mdb;";
$db = new Win32::ODBC($dsn);
$sql = "SELECT * FROM table ORDER BY ID";
$db->Sql($sql);
while ($db->FetchRow()) {
    @dati = $db->Data();
    # fai qualcosa
}
$db->Close();
Si puo' usare anche ADODB attraverso il modulo Win32::OLE
Maggiori info:
http://www.fastnetltd.ndirect.co.uk/Perl/perl-win32-database.html
Ciao!
Guido.


Non ho mai usato adodb al di fuori dell' ASP; non ho idea quali sono
pro e contro muovendo da un accesso in Perl. 
Ciao Guido, un sentito grazie per tutti i tuoi preziosi suggerimenti.
Daniele

> Mi sto dando da fare con il modulo di Dave Roth
... e pensare che David Lee Roth è pure un cantante metal :-))