Page 1 of 1
accesso a database SQL
Posted: Mon Feb 16, 2009 3:05 pm
by damianodec
Ad un server con SQL accedevo tramite ODBC con l'istruzione
oOdbc := TOdbc():New( cDSN, cName, cPass )
e mi tiravo la mia query con:
oDbf := oOdbc:Query(.....)
il responsabile del server dopo un aggiornamento non riesce ad attivare più l'ODBC, di conseguenza non funziona più la mi a procedura.
C'è qualche altro modo per accedervi?
grazie
Re: accesso a database SQL
Posted: Mon Feb 16, 2009 6:44 pm
by Enrico Maria Giordano
Sì, via ADO:
Code: Select all
#define adOpenForwardOnly 0
#define adOpenKeyset 1
#define adOpenDynamic 2
#define adOpenStatic 3
#define adLockReadOnly 1
#define adLockPessimistic 2
#define adLockOptimistic 3
#define adLockBatchOptimistic 4
FUNCTION MAIN()
LOCAL oRs := CREATEOBJECT( "ADODB.Recordset" )
oRs:Open( "SELECT * FROM Clienti ORDER BY Cliente", "Dsn=Clienti;Uid=Userid;Pwd=Password", adOpenForwardOnly, adLockOptimistic )
WHILE !oRs:EOF
? oRs:FIELDS( "Cliente" ):Value
oRs:MoveNext()
ENDDO
oRs:Close()
RETURN NIL
EMG
Re: accesso a database SQL
Posted: Tue Feb 17, 2009 8:06 am
by damianodec
provo, ma mi da l'errore:
Error description: Error ADODB.Recordset/6 DISP_E_UNKNOWNNAME: OPEN
Called from: win32ole.prg => TOLEAUTO:OPEN(0)
Re: accesso a database SQL
Posted: Tue Feb 17, 2009 8:16 am
by Enrico Maria Giordano
Naturalmente devi mettere il tuo DSN con i corretti userid e password.
EMG
Re: accesso a database SQL
Posted: Tue Feb 17, 2009 8:25 am
by damianodec
HO FATTO:
#define adOpenForwardOnly 0
#define adOpenKeyset 1
#define adOpenDynamic 2
#define adOpenStatic 3
#define adLockReadOnly 1
#define adLockPessimistic 2
#define adLockOptimistic 3
#define adLockBatchOptimistic 4
local cDsn := "cDsn"
Local cName := "cName"
Local cPass := "cPass"
LOCAL oRs := CREATEOBJECT( "ADODB.Recordset" )
oRs:Open( " Select t0.Name, T5.condpag, t0.address, t0.zipcode, t0.fax, t0.city, t0.county "+ ;
"from CLIENTI t0 INNER JOIN CLIENTI1 T5 "+ ;
"ON T0.KEY = T5.KEY where T0.NAME = 'NOME CLIENTE'", ;
"Dsn=CDsn;Uid=cCname;Pwd=cPass", adOpenForwardOnly, adLockOptimistic )
naturalmente in cDsn c'è il nome del database in cname l'userid e in cpass la password
Re: accesso a database SQL
Posted: Tue Feb 17, 2009 8:42 am
by Enrico Maria Giordano
Per favore, visualizza la seguente stringa e ti renderai conto dell'errore:
? "Dsn=CDsn;Uid=cCname;Pwd=cPass"
EMG
Re: accesso a database SQL
Posted: Tue Feb 17, 2009 9:05 am
by damianodec
il secondo parametro come errore è:
[ 2] = C Dsn=nomeDB;Uid=utente;Pwd=password
Re: accesso a database SQL
Posted: Tue Feb 17, 2009 9:16 am
by Enrico Maria Giordano
???
EMG
Re: accesso a database SQL
Posted: Tue Feb 17, 2009 9:19 am
by damianodec
posso inviarti l'esempio via email?
Re: accesso a database SQL
Posted: Tue Feb 17, 2009 9:21 am
by Enrico Maria Giordano
Ok.
EMG
Re: accesso a database SQL
Posted: Tue Feb 17, 2009 10:06 am
by Enrico Maria Giordano
Ho visto. Se sei assolutamente certo che sia la query (SELECT etc.) sia Dsn, Uid e Pwd siano corretti allora temo che il database non sia proprio accessibile.
EMG
Re: accesso a database SQL
Posted: Tue Feb 17, 2009 11:32 am
by damianodec
la query è quella che andava bene con l'ODBC e Dsn Uid e Pwd son quelli.... sigh!