Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [VB.NET] Connessione a Oracle con ODBC

    ciao!

    vorrei connettere una mia applicazione al db di Oracle.

    se dovesse servire, sul pc c'è già installato l'oracle client e configurata la connessione odbc (la uso sulle macro di excel).
    poi ho aggiunto, tramite NuGet, System.Data.Odbc.

    a questo punto non capisco cosa devo scrivere nel codice.
    ho provato così:
    codice:
    Imports System.Data.Odbc
    
    Module Module1
    
        Sub Main()
            Try
                Dim conn As OdbcConnection = New OdbcConnection("DRIVER={Microsoft ODBC for Oracle};SERVER=IP_SERVER;UID=USER;PWD=PWD;DATABASE=DB;")
                conn.Open()
                'Dim cmdStr As String = "SELECT * FROM gen_anag"
                'Dim cmd As OdbcCommand = New OdbcCommand(cmdStr)
                Console.WriteLine("OK CONNESSO")
            Catch ex As Exception
                Console.WriteLine(ex.Message)
            End Try
        End Sub
    
    End Module
    l'errore che ottengo è questo:
    codice:
    ERROR [IM004] [Microsoft][Driver Manager ODBC] Funzione SQLAllocHandle del driver su SQL_HANDLE_ENV non riuscita.
    idee??

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Non è specificatamente una risposta diretta al tuo problema, ma perché non usare direttamente il provider ADO.NET per Oracle?

    Vi sono classi specifiche (vedi documentazione) per accedere a database Oracle tramite ADO.NET, senza fare riferimento a ulteriori strati software generici, come il vecchio OLE DB oppure peggio ancora ODBC, che risulterebbero oltremodo lenti e poco ottimizzati per lavorare con .NET.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    ciao!

    perchè qui: https://docs.microsoft.com/it-it/dot...cle-and-adonet
    dice questo:
    codice:
    I tipi in System.Data.OracleClient sono deprecati. I tipi restano supportati nella versione corrente di .NET Framework, ma saranno rimossi in una versione futura. Microsoft consiglia di usare un provider Oracle di terze parti.
    quindi mi sono mosso in altre direzioni!

  4. #4
    comunque, ho fatto questa modifica:

    codice:
    Imports System.Data.Odbc
    
    Module Module1
    
        Sub Main()
            Try
                Dim conn As OdbcConnection = New OdbcConnection("DSN=NOME;UID=USER;PWD=PASSWORD")
                conn.Open()
                'Dim cmdStr As String = "SELECT * FROM gen_anag"
                'Dim cmd As OdbcCommand = New OdbcCommand(cmdStr)
                Console.WriteLine("OK CONNESSO")
            Catch ex As Exception
                Console.WriteLine(ex.Message)
            End Try
        End Sub
    
    End Module
    ed ottengo un altro errore:
    codice:
    ERROR [IM014] [Microsoft][Driver Manager ODBC] Errata corrispondenza di architettura tra il driver e l'applicazione nel DSN specificato
    quindi penso sia più corretto cosi, solo che non capisco il problema.
    ho messo Any CPU nel progetto.

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Quote Originariamente inviata da fermat Visualizza il messaggio
    perchè qui: https://docs.microsoft.com/it-it/dot...cle-and-adonet
    dice questo:
    codice:
    I tipi in System.Data.OracleClient sono deprecati. I tipi restano supportati nella versione corrente di .NET Framework, ma saranno rimossi in una versione futura. Microsoft consiglia di usare un provider Oracle di terze parti.
    quindi mi sono mosso in altre direzioni!
    Ma anche ODBC è deprecato.

    Quote Originariamente inviata da fermat Visualizza il messaggio
    ho messo Any CPU nel progetto.
    Credo che tu debba scegliere la stessa architettura (32-bit/64-bit) utilizzata dal client di Oracle.
    Probabilmente è la prima opzione.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  6. #6
    ok, non sapevo che ODBC lo fosse.
    cmq, nel mio caso specifico, ho usato ODBC perchè uso già delle connessioni ODBC, tramite l'oracle client, per le macro di excel.
    in sostanza le ho già configurate.
    detto ciò, quale sarebbero dei driver / librerie per Oracle non deprecate da usare in .NET??
    così le provo.

    per l'altro problema, ho trovato l'opzione nelle proprietà del progetto e ho risolto.

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Quote Originariamente inviata da fermat Visualizza il messaggio
    detto ciò, quale sarebbero dei driver / librerie per Oracle non deprecate da usare in .NET??
    Sembra che Oracle ne abbia un ufficiale: questo.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    Quote Originariamente inviata da alka Visualizza il messaggio
    Sembra che Oracle ne abbia un ufficiale: questo.
    ok allora proverò anche quello!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.