Riduciamo e ottimizziamo i tempi delle nostre attività

La prima connessione JDBC da C# a IBM i

Questa è la seconda puntata dell'articolo Come usare JTOpen in ambiente .Net per sviluppare client per IBM i in ambiente Microsoft in cui abbiamo imparato a creare le librerie .Net per poter lavorare sul nostro sistema IBM i da windows in C# (o VisualBasic.NET)

nel folder ...\ikvm-7.2.4630.5\bin\ troviamo tutte le dll che ci permetteranno di usare java dentro un progetto VisualStudio, mentre, con questo comando eseguito sul nostro PC:
.\ikvm-7.2.4630.5\bin\ikvmc.exe -target:library \JTOpen\jtopen_10_6\lib\jt400.jar
abbiamo ottenuto anche la jt400.dll che ci consentirà di avere pieno possesso del nostro sistema IBM i, compresa la possibilità di connetterci velocemente

  • Apriamo un nuovo progetto Visual Studio chiamato jdbcConnection e carichiamo come riferimenti tutte le dll in questione (anche se, per l'esempio base, ne servirebbero molte meno)

  • diamo indicazione dei riferimenti ai tipi che utilizzeremo nell'esempio
    using System;
    using com.ibm.as400.access;
    using java.sql;

  • connettiamoci via JDBC al sistema IBM i chiamato Penelope
    Connection db2conn = null;
    AS400JDBCConnection db2connJT = null;
    DriverManager.registerDriver(new AS400JDBCDriver());
    db2conn = DriverManager.getConnection("jdbc:as400://penelope;queryTimeout=0;translate binary=true;date format=iso;time format=iso", , );
    db2connJT = (AS400JDBCConnection)db2conn;

  • eseguiamo una semplice query per ottenere data e ora del sistema sfruttando la tabella fittizia sysibm.sysdummy1 e stampiamo il risultato in console
    try
    {
        String query = @"SELECT REPLACE(cast(current_date as char(10)),'-',''),REPLACE(cast(current_time as char(8)),'.','') FROM sysibm.sysdummy1";
    
    
        ResultSet rst = db2connJT.createStatement().executeQuery(query);
        ResultSetMetaData rsmd = rst.getMetaData();
        while (rst.next())
        {
            for (int i = 1; i <= rsmd.getColumnCount(); i++)
            {
                Console.WriteLine(rsmd.getColumnName(i) + " " + rst.getString(i));
            }
            Console.WriteLine("-----------------------------------------------------------");
        }
    }
    catch (ThreadAbortException abortException)
    {
        Console.WriteLine((string)abortException.ExceptionState);
        db2connJT.close();
    }

  • chiudiamo la connessione al sistema IBM i
         db2connJT.close();

    Con questo semplice esempio abbiamo visto come collegarci via JDBC al sistema IBM i. Questo ci permetterà di sfruttare tutte le potenzialità del DB2 for i e dei servizi SQL messi a disposizione dal sistema, il tutto da un programma .NET
    Abbiamo inoltre messo le basi per poter sfruttare le dll del pacchetto open source JTOpen, ma questo farà parte di un prossimo articolo 😉
    Articolo precedente Come usare JTOpen in ambiente .Net per sviluppare client per IBM i in ambiente Microsoft


    Marco Moret Monitoring Project Manager presso smeup ICS
     Puoi trovare l'articolo anche su LinkedIn


    Tutti gli articoli
     Quando il sistema è ripartito l'ultima volta?
     Writers Manager: Controllare e gestire le stampanti con l'SQL
     Controllare la sicurezza sui sistemi IBM i: l'​Audit Journal
     JTOpen per ambienti .Net. La prima connessione JDBC da C#
     JTOpen, sviluppare applicazioni in .Net per IBM i
     DB2 for i: gestire le date in SQL
     Scaricare, installare e utilizzare i driver ODBC per IBM i
     Ottenere le info di sistema in SQL

    Gestisci, analizza e controlla il sistema IBM i
    Scarica, installa e lavora in pochi secondi
      IBM i Monitoring Facility - Check è completamente gratuito fino a fine mese

  • Update cookies preferences