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

    [C#] Query su DB ORACLE proprietario

    Salve a tutti...ho un problema:

    devo effettuare delle query di SELECT e poi di UPDATE su un DB proprietario.
    Di tale DB non conosco, ovviamente, il contenuto...le uniche informazioni in mio possesso sono:
    -è ORACLE;
    -conosco i nomi delle tabelle e, per ciascuna di esse, tutti i campi con le info associate (tipo, lunghezza, null e descrizione)...

    Mi aiutate ad effettuare una query? Giuro...ci sto capendo poco...
    Facciamo un esempio pratico:

    Ho la tabella RIVERSAMENTI, avente questi campi:
    ID (numerico, è la chiave)
    CAP (numerico)
    FG_ATTIVO (char)
    SERVIZIO (varchar2)
    ANNO (numerico)
    CANALE (varchar2)
    NOME (varchar2)

    Suppondiamo di voler effettuare una query di select di questo tipo:
    SELECT CAP, ANNO, CANALE
    FROM RIVERSAMENTI
    WHERE FG_ATTIVO='S'"

    Questa 'SELECT' dovrebbe quindi estrarmi i valori di quei campi...bene...ma dove li memorizzo?
    Che struttura creare in modo da 'salvare' quei valori e poi utilizzarli in altre operazioni?

    Grazie mille a tutti

  2. #2
    Io lavoro massicciamente in ambiente Oracle e per poterti aiutare ho bisogno di alcune precisazioni.

    1) Che versione di Oracle DB usi ? es. 9i, 10g, 11g, Express etc.
    2) In che modo stabilisci la connessione al DB ? ADO.NET, ODBC...
    3) Cosa ne vuoi fare dei dati letti con dallo schema di ORACLE ? Vuoi memorizzarli in un altro DB, ad esempio ACCESS ? O ti servono solo per delle query, ad esempio per delle stampe ?

    La prima cosa che mi viene in mente è relativa al tipo di connessione. Dal sito di Oracle puoi scaricare ODPwithODAC for .NET, che è un software scritto appunto per gestire le connessioni ad un DB Oracle via .NET (C#, C++, ASP, VB.NET etc).

    Fammi sapere.

    Ciao
    Gaetano
    Gaetano

  3. #3
    Allora...innanzitutto grazie per la risposta!

    Non conosco benissimo il DB in questione perchè sto costruendo tale applicazione a partire da applicazioni esistenti, quindi sto scopiazzando un pò da qui ed un pò da là...

    Il DB dovrebbe essere Oracle 10g.
    Ho notato che vengono usate queste inclusioni:

    using System.Data.OldDb;
    using System.Data.Odbc;

    HPADOHelperNET objAdo = new HPADOHelperNet(Costanti.ObjectInfoID);

    // ObjectInfoID contiene il nome del DB

    StringBuilder sql=new StringBuilder();
    OleDbParameter param;
    IDbCommand cmd;

    IDbConnection conn = objAdo.getConnection();

    //Questa è la query da me implementata:
    sql.Append("SELECT DISTINCT ID ");
    sql.Append("FROM RIVERSAMENTI");

    cmd = objAdo.getCommand(sql.ToString(), conn);

    La connessione e tutti i parametri di creazione sono esatti?
    Ciò che voglio capire è dove/come memorizzare queste info in...che ne so, un Arraylist(?) così da poter manipolare i dati a mio piacimento (verificando, ad es., determinate condizioni e quindi stampare a video tali valori, o stamparli su file...etc)

    Grazie mille

  4. #4
    Il DB dovrebbe essere Oracle 10g.
    Hai la possibilità di connetterti in qualche modo al DB? In caso contrario, credo che tu abbia grosse difficoltà a creare una applicazione che ne fa uso. Infatti, come fai a verificare che quanto scrivi è giusto.

    HPADOHelperNET
    Da questa stringa deduco che la conessione è di tipo ADO.NET. Dovresti, perciò, installare il software che ti ho segnalato, avendo, poi, accesso a DB Oracle.

    http://www.oracle.com/technology/sof...odt_index.html

    Le modalità di connessione, sono poi sostanzialmente due: o tramite ODBC o usando (meglio) il TNSNAME.ORA di oracle. A questo proposito puoi leggere questo articolo:

    http://www.oracle.com/technology/obe...et/vs_otn2.htm
    oppure
    http://www.oracle.com/technology/pub...ok_dotnet.html

    In entrambi, oltre agli esempi, sono date chiare indicazioni di come connettersi ad un DB Oracle da VS.

    Scrivi pure, se ti servono altri chiarimenti.

    Greetings...
    Gaetano

  5. #5
    Ciao!

    Anzitutto grazie per la risposta!

    Il mio dubbio, dopo aver creato la connessione ed aver effettuato una select congruente (mi tira, cioè, effettivamente i valori che volevo), come manipolare i valori di tale select?

    Io inserisco la select all'interno di una variabile DataSet ds, in questo modo:


    public DataSet Recupero_INFO()
    {
    StringBuilder sql = new StringBuilder();
    DataSet ds = new DataSet();
    OleDbParameter param;

    ArrayList listaParametri = new ArrayList();

    try
    {
    conn = objAdo.getConnection(); // dove ho impostato IDbConnection conn;

    //Costruisco la query parametrica
    sql.Append(" SELECT NOME, COGNOME");
    sql.Append(" FROM ANAGRAFICA");

    ds = objAdo.getDataSet("Recupero_INFO", cmd);

    DataTable dt = ds.Tables[0];

    Context.Util.SetComplete();

    return ds;
    }

    catch (Exception ex)
    {
    // fa qualcosa...
    }


    Ora...ecco il mio problema:
    Vorrei scansionare il DB e, per ogni riga presente nel ds, scrivere su un file tali informazioni (nell'esempio sono Nome e Cognome)...
    Qual è la sintassi da usare?
    Come 'leggere' i valori che risultano dalla select ed utilizzarli per scrivere (ad es.) su un file (non mi interessa la sintassi per la scrittura su file, la conosco...l'ho imparata proprio grazie a voi! )

    Grazie infinitamente!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.