Italian community of Lazarus and Free Pascal
Programmazione => Databases => Topic aperto da: Maverich - Giugno 14, 2012, 08:05:00 pm
-
Ho installato Oracle 10g express, quindi tento la connessione con
- Zeos 7.0.0 -> ZConnection
oppure
- SqlDb-> OracleConnection
a design time, imposto Connected = true e tutto bene;
se lo faccio a runtime
ho il messaggio gdb.exe ha smesso di funzionare
Win7 64 + Lazus 32 - Rel 1.1
eppure sono sicuro che non sia colpa di Lazarus. qualche giorno fa, lo stesso test andava senza problemi;
ma ora ho messo tutto su un nuovo Hd, e forse mi manca qualcosa (Iava Runtime ???)
qualcuno che conosce Oracle ? :(
-
ho fatto un nuovo Test, questa volta con Lazrus64 su Win7 64;
non ci sono problemi, si collega ed esegue la Query.
il problema si verifica su Lazarus32 con Win7 o con WinXP.
la libreria oci.dll e' a 32 bit, come Oracle express 10.
-
con Zeos (ZConnection) cambiando la proprieta'
da
DataBase : XE
HostName: localhost:1521/XE
a
DataBase : localhost:1521/XE
HostName: vuoto
funziona correttamente su WinXP.
OracleConnection sempre ok a DesignTime , e errore a RunTime (gdb.exe)
DataBase : XE
HostName: localhost:1521/XE
DataBase : localhost:1521/XE
HostName:
DataBase : XE
HostName: 127.0.01:1521
resta anomalo il comportamento tra Lazarus32 e 64 bit con OracleConnection
anche settando
OracleConnection1.Directory := 'C:\TestOracle';
OracleConnection1.Connected := True;
-
Grazie della segnalazione, hai provato a farlo presente a chi si occupa di zeos?!
-
Da quello che ho capito, Maverich, sembra che il problema risieda nella risoluzione del SID a 64bit ... Non riconosce "XE" ... o sbaglio?
XE viene risolta da un servizio (Oracle).
Se la libreria si aspetta un dato a 32 e gli arriva a 64, si incasina tutto. ;)
A 64 Bit hai impostato, grosso modo, tutte le info che servono per potersi collegare. Una volta innescata la comunicazione, il driver Oracle, riesce a gestire la comunicazione.
Ho capito bene?
-
Grazie della segnalazione, hai provato a farlo presente a chi si occupa di zeos?!
il problema non e' piu' di Zeos , ora funziona a 32 e 64 bit
ma dei componenti standard SqlDB (oracleconnection) che funziona a 64 ma nona 32 bit (solo design time);
dovrei seguire passo passo il sorgente del driver che esegue la connessione.
-
era un problema banale do oci.dll ociw32.dll;
ho ricopiato oci.dll nella direcory del programma Test
ora OraclConnection dei componenti SQLDB funziona
sia in fase di Debug che runtime anche a 32 bit.
try
OracleConnection1.Directory := 'C:\TestMySQL_Laz';
//OracleConnection1.HostName := 'localhost:1521';
OracleConnection1.HostName := '';
OracleConnection1.DataBaseName := 'localhost:1521/XE';
OracleConnection1.Connected := True;
SqlQuery1.Active := True;
except
ShowMessage('Non connesso');
...........
end;