Catturare l'output a video da as400

lunedì 08 marzo 2021 - 12.31
Tag Elenco Tags  VB.NET

paolagumi Profilo | Junior Member

Buongiorno,
ho una classe in vb.net (visual studio 2010) che richiama una stored procedure su as400 db2.
La procedura manda l'output a video con una query, ed io vorrei catturare l'output e leggerlo in un datareader se possibile,
ma non ci riesco.
Sotto vedete le istruzioni che utilizzo.
IL'oledbreader risulta senza righe, ma se eseguo la procedura su As400 me ne restituisce correttamente.
Qualcuno mi riesce ad aiutare?
grazie,
Paola



Public Function ScriviMensile(ByVal Ambiente As String, ByVal Anno As Int32, ByVal Mese As Int32, ByVal Ordinamento As Int32) As String



ScriviMensile = True



' per test:

Ambiente = "VESTI110"

Anno = 2021

Mese = 1

Ordinamento = 1



Dim Messaggi As New DataCenter.Classi.Oggetti.Utilita.Messaggi



If Not (ApriConnessioneAs400()) Then

Exit Function

End If



Dim Messaggio As DataCenter.Classi.Oggetti.Utilita.Messaggio



Dim OleDbCmd As OleDb.OleDbCommand

Dim OleDbDa As OleDb.OleDbDataAdapter

Dim OleDbDs As System.Data.DataSet = Nothing

Dim OleDbDr As OleDb.OleDbDataReader



Try

OleDbCmd = New OleDb.OleDbCommand

With OleDbCmd

.Connection = ConnAs400

.CommandType = CommandType.StoredProcedure

.CommandTimeout = 1000



.CommandText = "VESTIAMT.AMBTC28P"



Dim OleDbPar1 As System.Data.OleDb.OleDbParameter

OleDbPar1 = .CreateParameter()

OleDbPar1.ParameterName = "AMBIENTE"

OleDbPar1.DbType = DbType.String

OleDbPar1.Size = 10

OleDbPar1.Value = Ambiente

OleDbPar1.Direction = ParameterDirection.InputOutput

.Parameters.Add(OleDbPar1)



Dim OleDbPar2 As System.Data.OleDb.OleDbParameter

OleDbPar2 = .CreateParameter()

OleDbPar2.ParameterName = "ANNO"

OleDbPar2.DbType = DbType.String

OleDbPar2.Size = 4

OleDbPar2.Value = Anno

OleDbPar2.Direction = ParameterDirection.InputOutput

.Parameters.Add(OleDbPar2)



Dim OleDbPar3 As System.Data.OleDb.OleDbParameter

OleDbPar3 = .CreateParameter()

OleDbPar3.ParameterName = "MESE"

OleDbPar3.DbType = DbType.String

OleDbPar3.Size = 2

OleDbPar3.Value = " "

OleDbPar3.Direction = ParameterDirection.InputOutput

.Parameters.Add(OleDbPar3)



Dim OleDbPar4 As System.Data.OleDb.OleDbParameter

OleDbPar4 = .CreateParameter()

OleDbPar4.ParameterName = "ORDINA"

OleDbPar4.DbType = DbType.String

OleDbPar4.Size = 1

OleDbPar4.Value = " "

OleDbPar4.Direction = ParameterDirection.InputOutput

.Parameters.Add(OleDbPar4)



Dim OleDbPar5 As System.Data.OleDb.OleDbParameter

OleDbPar5 = .CreateParameter()

OleDbPar5.ParameterName = "NRJOB"

OleDbPar5.DbType = DbType.String

OleDbPar5.Size = 6

OleDbPar5.Value = " "

OleDbPar5.Direction = ParameterDirection.InputOutput

.Parameters.Add(OleDbPar5)



Dim matricola As Int32 = 0

OleDbDr = .ExecuteReader

While OleDbDr.Read()

matricola = OleDbDr("Matricola").ToString

End While

'.ExecuteNonQuery()



OleDbCmd = Nothing

OleDbDs = Nothing

OleDbDa = Nothing



End With



Catch ex As Exception

Messaggio = New DataCenter.Classi.Oggetti.Utilita.Messaggio

Messaggio.IdTipo = DataCenter.Classi.Oggetti.Utilita.Messaggio.TipoMessaggio.TMErrore

Messaggio.Testo = "Errore in lettura dati da As400: " & ex.Message

Messaggi.Add(Messaggio)

Messaggio = Nothing



Try

With ConnAs400

If .State = ConnectionState.Open Then .Close()

End With

Catch ex1 As Exception

End Try

ConnAs400 = Nothing

OleDbCmd = Nothing

OleDbDa = Nothing

OleDbDs = Nothing

End Try



ChiudiConnessioneAs400()


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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5