Saturday, September 22, 2007

DB2.NET Provider. Primi Passi

. Saturday, September 22, 2007

Ultimamente sto lavorando su un'applicazione web la cui base dati è rappresentata da DB2 v.8.1 su mainframe e la comunicazione avviene attraverso uno strato creato ad hoc.
Ho voluto però eseguire qualche esperimento con il data provider messo a disposizione per i sistemi di database DB2.
La virtual machine su cui ho effetuato i miei test è composta:
1)Windows XP Professional con SP2,
2)Framework 2.0,
3)Visual Studio 2005,
4)DB2 Server v.9.1 e DB2 Client che presenta tutta una serie di tool visuali per poter interagire con tabelle, stored procedures, indici, trigger, ecc ed inoltre comprende l'add-in per VS 2005.
Una volta installato il tutto si può far partire il Centro di controllo:

ed attraverso il wizard apposito ho creato la tabella TableTestDB2:

Il codice per recuperare tutti i record presenti in questa tabella:

Imports System.Data
Imports IBM.Data.DB2
.....
Public Function GetAllDati() As DataTable
Dim dt As DataTable = New DataTable
Dim con As DB2Connection
Try
con
= New DB2Connection()
con.ConnectionString
= "Database=DBPROVA;UID=username;PWD=password"
Dim command As DB2Command = New DB2Command("SELECT * FROM DB2.TABLETESTDB2", con)
Dim db2Da As DB2DataAdapter = New DB2DataAdapter(command)
db2Da.Fill(dt)
Catch ex As Exception
Throw ex
Finally
If Not (con Is System.DBNull.Value) Then
con.Close()
End If
End Try
Return dt
End Function
E per quanto riguarda l'uso delle stored procedures?
Il data provider ci permette da Visual Studio 2005 di collegarci al server DB2:

una volta eseguita la connessione, sotto la voce Procedure possiamo utilizzare il wizard Aggiungi nuova procedura
SQL con Designer
per generare stored procedures:

Il codice per richiamare una stored procedure:
Public Function GetFilter(ByVal valueParameter As String) As DataTable
Dim dt As DataTable = New DataTable
Dim con As DB2Connection
Try
con
= New DB2Connection()
con.ConnectionString
= "Database=DBPROVA;UID=username;PWD=password"
Dim command As DB2Command = New DB2Command("DB2.PROCEDURATEST", con)
command.CommandType = CommandType.StoredProcedure
'Definizione del parametro
Dim parameterDB2 As DB2Parameter = New DB2Parameter
parameterDB2.ParameterName
= "DESCRIZIONEVALUE"
parameterDB2.DbType
= DbType.String
parameterDB2.Value
= valueParameter
command.Parameters.Add(parameterDB2)
Dim db2Da As DB2DataAdapter = New DB2DataAdapter(command)
db2Da.Fill(dt)
Catch ex As Exception
Throw ex
Finally
If Not (con Is System.DBNull.Value) Then
con.Close()
End If
End Try

Return dt
End Function

Il metodo GetFilter esegue la stored procedure DB2.PROCEDURATEST che prende in input il parametro DescrizioneValue per filtrare sul campo Descrizione della tabella TableTestDB2.

0 commenti:

Post a Comment