Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
.NET 2.0 e oracle client 9
martedì 09 ottobre 2007 - 08.29
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
elsinore
Profilo
| Junior Member
191
messaggi | Data Invio:
mar 9 ott 2007 - 08:29
Ciao a tutti,
una domnada semplice ma l'oracle client 9 è supportato da .NET 2.0??
No perchè ho un'applicazione che funzionava con il client 10 ma con il 9 nn va...... nelle references del mio progetto non trovo OracleDataAccess.dll !
Ci sono alternative per fare funzionare il tutto con il 9??
grazie!
stellaga
Profilo
| Newbie
33
messaggi | Data Invio:
mar 9 ott 2007 - 13:33
Ciao, io ho usato per delle mie applicazione sia il client ver. 8, sia il 9 che il 10 senza problemi e senza cambiare niente.
Comunque ho usato le classi native del .net framework per interfacciarmi con Oracle, cioè : System.Data.OracleClient .
Ma l'errore che riscontri qual'è?, perchè ad esempio se non hai determinati permessi sulla cartella che contiene il client, ASP.NET genera un errore, quindi se puoi essere più preciso.....
Gaetano Stella
elsinore
Profilo
| Junior Member
191
messaggi | Data Invio:
mar 9 ott 2007 - 13:49
Ciao,
ti spiego a che punto sono...... io ho una web application sviluppata con asp.net 2.0 e con Oracle client 10.......
il mio cliente però usa il client 9, quindi mi sono disinstallato il 10 installato il 9 per ricompilare le classi che siconnettono al DB, e qui i lproblema, quando compilo mi dice
'Oracle.DataAccess.Client.OracleDataReader' does not contain a definition for 'HasRows'
il tutto nel codice è dichiarato così
OracleDataReader RS;
RS = cmd.ExecuteReader();
....
if (RS.HasRows)
.....
Da notare che nelle reference del mio progetto ho tolto la dll oracle.DataAccess (della vers 10) ed ho aggounto quella della 9... solo che navigando in giro mi hanno detto che il metodo hasrows esiste dalla 10 in poi, qundi che posso fare?
devo per forza usare la 10 o ci sono vie alternative?
grazie!
stellaga
Profilo
| Newbie
33
messaggi | Data Invio:
mar 9 ott 2007 - 14:48
perchè non provi ad usare al posto di if (RS.hasRows) if (RS.Read()) . se RS è vuoto ti da false altrimenti RS si trova posizionato sul primo record e lo puoi elaborare. se devi scandire tutti i record ovviamente usi while (RS.Read()) { ..istruzioni.. }
Gaetano Stella
elsinore
Profilo
| Junior Member
191
messaggi | Data Invio:
mar 9 ott 2007 - 15:31
Ciao ti ringrazio, ho provato e ora compila.....solo che non capisco perchè, non mi trova i dati corretti......ho debuggato e nel codice, ad esempio qui
public void showResults(string SQLQueryString)
{
if (findFlag == true)
{
if (Record.Read())
{
while (Record.Read())
{
object testo = Record.GetValue(0); // prima colonna del DB
string ItemTesto = testo.ToString();
TextBox1.Text = ItemTesto;
dove la query restituisce un risultato......entro nell'if ma non nel while!! nn capisco perchè....
poi altra cosa strana.....un semplicissimo bottone nn si vede più quando apro dal browser la pagina aspx......ma che è? l'oracle client fa tutti sti scherzi??
stellaga
Profilo
| Newbie
33
messaggi | Data Invio:
mar 9 ott 2007 - 15:46
attenzione devi togliere la if(RS.Read) perchè è superflua e ti crea problemi perchè ti sposta il cursore al primo record e quindi quando fai di nuovo rs.read dentro il while ti porta al secondo quindi perdi il primo record.
Ripeto elimina la if perchè è contemplata già nella while in quanto se il datareader è vuoto ritorna false e quindi il ciclo non viene eseguito
ok?
Gaetano Stella
elsinore
Profilo
| Junior Member
191
messaggi | Data Invio:
mar 9 ott 2007 - 16:02
ti ringrazio..... sei stato gentilissimo.....ora funziona tutto!
ftrotta
Profilo
| Newbie
4
messaggi | Data Invio:
mar 29 gen 2008 - 11:39
Ciao. Hai a disposizione qualche link che spieghi i passi per l'installazione e la configurazione del client Oracle per versione 9 in modo da poter essere utilizzato per ASP.NET 2.0? Sto avendo dei problemi...
Ti ringrazio
elsinore
Profilo
| Junior Member
191
messaggi | Data Invio:
mar 29 gen 2008 - 11:49
Ciao,
mah, in rete c'è tanta documentazione......che tipo di problemi hai?
ftrotta
Profilo
| Newbie
4
messaggi | Data Invio:
mar 29 gen 2008 - 13:41
1) Ho installato il client scaricandolo dall'indirizzo
http://www.oracle.com/technology/software/products/oracle9i/htdocs/winsoft.html
2) Ho assegnato i diritti di lettura e scrittura alla directory /bin dell'installazione
3)Il codice che eseguo nella pagina ASP.NET (2.0) è molto semplice (ho omesso le informazioni riservate).
using System.Data.OracleClient;
...
OracleConnection connection = new OracleConnection("Data Source=\"(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = <omissis>)(PORT = 1521)))(CONNECT_DATA =(SID = IASDB)))\";User Id=<omissis>;Password=\"<omissis>"");
connection.Open();
connection.Close();
4) Il risultato che ottengo è un'eccezione
Per utilizzare System.Data.OracleClient è necessario il software client per Oracle versione 8.1.7 o successiva.
Ti faccio presente che se utilizzo sqlplus con la medesima stringa di connessione riesco a connettermi alla base di dati e ad eseguire i comandi di cui ho bisogno.
Hai qualche dritta?
Ti ringrazio
elsinore
Profilo
| Junior Member
191
messaggi | Data Invio:
mar 29 gen 2008 - 13:50
Nel web.config dell'applicazione ci dovrebbe essere scritta la versione di oracle che stai usando......qual'è?
ftrotta
Profilo
| Newbie
4
messaggi | Data Invio:
mar 29 gen 2008 - 13:52
<add assembly="System.Data.OracleClient, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
elsinore
Profilo
| Junior Member
191
messaggi | Data Invio:
mar 29 gen 2008 - 13:57
dire che non va bene
devi mettere la verisone del client che stai usando....
la verisone la vedi facendo add reference sul progetto...ti cerchi il tuo oracle.data.access e copi la versione......e dovrebbe funzionare..
ftrotta
Profilo
| Newbie
4
messaggi | Data Invio:
mar 29 gen 2008 - 14:27
Ho risolto scaricando ed installando ODP.NET (
http://www.oracle.com/technology/software/tech/windows/odpnet/index.html
) ed impostando la variabile di ambiente ORACLE_HOME alla directory di installazione (nel mio caso /oracle/ora92).
Invio il comando SELECT ISCRITTO_ING('206318', 'SPDMSM76D20D653D') FROM DUAL; e cerco di leggere la risposta con un OracleDataReader, ma ottengo la seguente eccezione.
Tipo di dati della colonna non supportato
Hai qualche informazione al riguardo?
Come puoi notare, non è una classica select, ma richiama una funzione.
elsinore
Profilo
| Junior Member
191
messaggi | Data Invio:
mar 29 gen 2008 - 14:34
ma la versione nel web.config l'hai cambiata?
stellaga
Profilo
| Newbie
33
messaggi | Data Invio:
mer 30 gen 2008 - 07:25
La funzione che tipo ritorna?, comunque in generale per utilizzare una funzione oracle con l'assembly nativo ms, devi utilizzare il seguente codice:
questa è il codice utilizzato per una funzione scritta da me in un mio programma
OracleCommand cmd = new OracleCommand();
// calcolo festività costanti
cmd.CommandText = "calcolofestivita";
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("data1", OracleType.DateTime);
cmd.Parameters.Add("data2", OracleType.DateTime);
cmd.Parameters.Add("tipo", OracleType.Char);
// definiamo la variabile che conterrà il risultato della funzione
OracleParameter p = cmd.Parameters.Add("num", OracleType.Int16);
p.Direction = ParameterDirection.ReturnValue;
// impostiamo i parametri di ingresso alla funzione
cmd.Parameters[0].Value = d1;
cmd.Parameters[1].Value = d2;
cmd.Parameters[2].Value = tipo;
// eseguiamo la funzione
cmd.ExecuteNonQuery();
// prendiamo il valore restituito e lo mettiamo nella variabile i
i = int.Parse(p.Value.ToString());
Saluti
Gaetano Stella
crondinini
Profilo
| Newbie
1
messaggi | Data Invio:
mer 12 nov 2008 - 12:31
System.Exception: Per utilizzare System.Data.OracleClient è necessario il software client per Oracle versione 8.1.7 o successiva.
Si risolve copiando il file MSVCR71.DLL dentro a Windows/System32
L'ho scoperto da qui
http://macinsoft.blogspot.com/2008/06/missing.html
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !